%% %% This is file `sref.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% sref.dtx (with options: `package') %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{sref}[2011/12/20 v1.0 Semantic Cross-References] \DeclareOption{showmeta}{\PassOptionsToPackage{\CurrentOption}{metakeys}} \newif\ifextrefs\extrefsfalse \DeclareOption{extrefs}{\extrefstrue} \ProcessOptions \RequirePackage{metakeys} \newcommand{\sref}[2][]{% \@ifundefined{sref@part}{\sref@hlink[#1]{#2}}{\sref@hlink[#1]{\sref@part @#2}}} \newcommand{\srefs}[3][]{% \def\@test{#1}\ifx\@test\@empty\sref{#2} and \sref{#3}\else #1\fi} \newcommand{\srefl}[3][]{% \def\@test{#1}\ifx\@test\@empty\sref{#2} to \sref{#3}\else #1\fi} \newcommand{\spageref}[1]{% \@ifundefined{sref@part}{\sref@pageref{#1}}{\sref@pageref{\sref@part @#1}}} \newif\ifhref\hreffalse \AtBeginDocument{\@ifpackageloaded{hyperref}{\hreftrue}{\hreffalse}} \newcommand\sref@href@ifh[2]{\ifhref\href{#1}{#2}\else#2\fi} \newcommand\sref@hlink@ifh[2]{\ifhref\hyperlink{#1}{#2}\else#2\fi} \newcommand\sref@target@ifh[2]{\ifhref\hypertarget{#1}{#2}\else#2\fi} \def\sref@target% {\ifx\sref@id\@empty\else% \edef\@target{sref@\@ifundefined{sref@part}{}{\sref@part @}\sref@id @target} \sref@target@ifh\@target{}\fi} \newcommand\@sref@def[3]{\expandafter\gdef\csname sref@#1@#2\endcsname{#3}} \ifextrefs\newwrite\refs@file\else\def\refs@file{\@auxout}\fi \newcommand\sref@def[3]{%\@sref@def{#1}{#2}{#3}% \protected@write\refs@file{}{\string\@sref@def{#1}{#2}{#3}}} \addmetakey{srefaddidkey}{prefix} \newcommand\srefaddidkey[2][]{\metasetkeys{srefaddidkey}{#1}% \@metakeys@ext@clear@keys{#2}{sref@id}{}% id cannot have a default \metakeys@ext@clear@keys{#2}{id}{}% \metakeys@ext@showkeys{#2}{id}% \define@key{#2}{id}{\edef\sref@id{\srefaddidkey@prefix ##1}% \expandafter\edef\csname #2@id\endcsname{\srefaddidkey@prefix ##1}}} \newcommand\makeextrefs[1]{\gdef\sref@part{#1}% \makeatletter \IfFileExists{\jobname.refs}{\input{\jobname.refs}}{}% \immediate\openout\refs@file=\jobname.refs \makeatother} \newcommand\sref@label[2]{% \sref@def{\@ifundefined{sref@part}{}{\sref@part @}#2}{page}{\thepage}% \sref@def{\@ifundefined{sref@part}{}{\sref@part @}#2}{label}{#1}} \newcommand\sreflabel[2]{\message{sreflabel: #1, #2}\sref@label{#1 \@currentlabel}{#2}} \newcommand\sref@label@id[1]{\ifx\sref@id\@empty\else\sref@label{#1}{\sref@id}\fi} \newcommand{\sref@hlink}[2][]{\def\@test{#1}% \@ifundefined{sref@#2@label}% {\protect\G@refundefinedtrue\@latex@warning{reference #2 undefined}??}% {\sref@hlink@ifh{sref@#2@target}{\ifx\@test\@empty\@nameuse{sref@#2@label}\else #1\fi}}} \newcommand{\sref@page@label}[1]{p.~{#1}} \newcommand{\sref@pageref}[1]{\@ifundefined{sref@#1@page}% {\protect\G@refundefinedtrue\@latex@warning{reference #1 undefined}\sref@page@label{??}}% {\sref@hlink@ifh{sref@#1@target}{\sref@page@label{\@nameuse{sref@#1@page}}}}} \newcommand{\sref@href}[3][]{\def\@test{#1}% \@ifundefined{sref@#2@label}% {\protect\G@refundefinedtrue\@latex@warning{reference #2 undefined}??}% {\@ifundefined{sref@#3@URI}% {\protect\G@refundefinedtrue\@latex@warning{external refs of type #3 undefined}??}% {\edef\@uri{\@nameuse{sref@#3@URI}.pdf\#sref@#2@target} \edef\@label{\ifx\@test\@empty\@nameuse{sref@#2@label}\else #1\fi} \sref@href@ifh\@uri\@label}}} \ifextrefs \newcommand{\extref}[3][]{\def\theextref{\sref@href[#1]{#2@#3}{#2}}% \csname doextref@#2\endcsname} \else \newcommand{\extref}[3][]{\sref[#1]{#3}} \fi \ifextrefs \newcommand{\extpageref}[3][]{\def\thepageextref{\sref@pageref[#1]{#2@#3}{#2}}% \csname doextpageref@#2\endcsname} \else \newcommand{\extpageref}[3][]{\spageref[#1]{#3}} \fi \newcommand\extrefstyle[2]{\expandafter\gdef\csname doextref@#1\endcsname{#2}} \newcommand\extpagerefstyle[2]{\expandafter\gdef\csname doextpageref@#1\endcsname{#2}} \newcommand{\inputrefs}[2]{% \@namedef{sref@#1@URI}{#2} \makeatletter% \IfFileExists{#2.refs}{\input{#2.refs}} {\PackageError{sref}{Reference file #1.refs does not exist} {Maybe you have to run LaTeX on #2.tex first}} \makeatother} \srefaddidkey{sequation} \def\sref@sequation@heading{equation} \newenvironment{sequation}[1][]{\metasetkeys{sequation}{#1}% \ifx\sref@id\@empty\begin{displaymath}\else% no id, using equation* \begin{equation}\sref@target\sref@label@id{\sref@sequation@heading~(\theequation)}\fi} {\ifx\sref@id\@empty\end{displaymath}\else\end{equation}\fi} \newenvironment{seqnarray}[1][]% {\metasetkeys{sequation}{#1}\begin{eqnarray*}\sref@target% \sref@label@id{\sref@sequation@heading~(\theequation)}} {\end{eqnarray*}} \newcommand\withcite[2]{#2~\cite{#1}} \newenvironment{withcitation}[1]{\def\citeit{\cite{#1}}}{} \endinput %% %% End of file `sref.sty'.