From a6451a5b29813f32c1fb91745c853c23fc2722a3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 11 Dec 2015 23:19:23 +0000 Subject: showlabels (11dec15) git-svn-id: svn://tug.org/texlive/trunk@39083 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/showlabels/showlabels.sty | 168 +++++++++++++-------- 1 file changed, 109 insertions(+), 59 deletions(-) (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/showlabels/showlabels.sty b/Master/texmf-dist/tex/latex/showlabels/showlabels.sty index ccbbeb32ec0..408968da868 100644 --- a/Master/texmf-dist/tex/latex/showlabels/showlabels.sty +++ b/Master/texmf-dist/tex/latex/showlabels/showlabels.sty @@ -8,7 +8,7 @@ %% Showlabels: Style to display labels in the margin %% This is the showlabels package %% -%%%% Copyright 2005--2013, Norman Gray +%%%% Copyright 1999, 2001--09, 2013--15, Norman Gray %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -25,91 +25,130 @@ %% This work consists of the files showlabels.dtx and showlabels.ins, %% and the derived file showlabels.cls. \def\filename{showlabels} -\def\fileversion{1.6.6} -\def\filedate{2013/12/06} -\def\docdate{2013 December 6} +\def\fileversion{1.7} +\def\filedate{2015/12/08} +\def\docdate{2015 December 8} \def\filemaintainer{norman@astro.gla.ac.uk} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{showlabels}[\filedate\space v\fileversion] \typeout{Package: `showlabels' v\fileversion\space<\filedate>} \newif\ifSL@AMS -\expandafter\ifx\csname maketag@@@\endcsname\relax +\@ifundefined{maketag@@@} \SL@AMSfalse -\else - \SL@AMStrue - \typeout{with amsmath equation tags} -\fi + {\SL@AMStrue\typeout{with amsmath equation tags}} +\def\SL@eqntext{% + \ifSL@labelsinline + \let\@tempa\SL@interlinetextleft + \else + \let\@tempa\SL@eqnlrtext + \fi + \@tempa +} +\def\SL@wrap@labeller#1{% + \expandafter\let\csname SL@orig@#1\expandafter\endcsname\csname #1\endcsname + \expandafter\def\csname #1\endcsname{% + \csname SL@orig@#1\endcsname + \ifx\SL@labelname\relax + % do nothing + \else + \SL@eqntext{\SL@labelname}% + \fi + \global\let\SL@labelname\relax}} \ifSL@AMS - \let\SL@maketag@@@=\maketag@@@ - \def\maketag@@@#1{% - \SL@maketag@@@{#1}% - %\message{maketag@@@: df@label=\df@label, SL@labelname=\SL@labelname, env=\@currenvir}% + \let\SL@orig@maketag@@@=\maketag@@@ + \def\SL@maketag@@@#1{% + \SL@orig@maketag@@@{#1}% \ifx\df@label\@empty \ifx\SL@labelname\relax % do nothing \else - \SL@eqnlrtext{\SL@labelname}% + \SL@eqntext{\SL@labelname}% \fi \else - \SL@eqnlrtext{\df@label}% + \SL@eqntext{\df@label}% \fi \global\let\SL@labelname\relax } \else - \let\SL@eqnnum=\@eqnnum - \def\@eqnnum{% - \SL@eqnnum - \ifx\SL@labelname\relax - % do nothing - \else - \SL@eqnlrtext{\SL@labelname}% - \fi - \global\let\SL@labelname\relax - } + %% \let\SL@eqnnum=\@eqnnum + %% \def\@eqnnum{% + %% \SL@eqnnum + %% \ifx\SL@labelname\relax + %% % do nothing + %% \else + %% \SL@eqntext{\SL@labelname}% + %% \fi + %% \global\let\SL@labelname\relax + %% } + \SL@wrap@labeller{@eqnnum} \fi \global\let\SL@labelname\relax \@ifundefined{ttfamily} {\providecommand{\showlabelfont}{\small\tt}} {\providecommand{\showlabelfont}{\small\ttfamily}} -\providecommand{\showlabelsetlabel}[1]{{\normalfont\showlabelfont #1}} +\providecommand{\showlabelsetlabel}[1]{{\normalfont\showlabelfont\SL@fmt@ #1}} \def\SL@gobblethree#1#2#3{} \def\SL@prlabelname#1{% \expandafter\expandafter\expandafter\SL@gobblethree \expandafter\string\csname r@#1\endcsname} -\def\showlabels#1{% - \@temptokena=\expandafter{\csname #1\endcsname} - \expandafter\edef\csname SL@init#1\endcsname{% - \let\csname SL@orig#1\endcsname\the\@temptokena - \let\the\@temptokena\csname SL@#1\endcsname} - \AtBeginDocument{\csname SL@init#1\endcsname}% - \expandafter\def\csname SL@#1\endcsname{\SL@showlabels{#1}} +\def\showlabels{\@ifnextchar[\showlabels@{\showlabels@[]}} +\def\showlabels@[#1]#2{% + \@temptokena=\expandafter{\csname #2\endcsname} + \def\@tempa{#1}% + \ifx\@tempa\@empty + \expandafter\let\csname SL@fmt@#2\endcsname\relax + \else + \expandafter\def\csname SL@fmt@#2\endcsname{#1}% + \fi + \expandafter\edef\csname SL@init@#2\endcsname{% + \let\csname SL@orig#2\endcsname\the\@temptokena + \let\the\@temptokena\csname SL@#2\endcsname} + \AtBeginDocument{\csname SL@init@#2\endcsname}% + \expandafter\def\csname SL@#2\endcsname{% + \expandafter\let\expandafter\SL@fmt@\csname SL@fmt@#2\endcsname + \SL@showlabels{#2}} } +\let\SL@fmt@\relax \DeclareRobustCommand\SL@showlabels[1]{% - \def\@tempa{\csname SL@orig#1\endcsname}% - \@ifnextchar[\SL@showlabelsopt\SL@showlabelsplain + \expandafter\let\expandafter\SL@orig@@next\csname SL@orig#1\endcsname + \@ifstar + {\SL@showlabelsplainstar} + {\@ifnextchar[ + {\SL@showlabelsopt} + {\SL@showlabelsplain}} } \def\SL@showlabelsopt[#1]#2{% \@bsphack \SL@setlabel{#2}\relax \ifhmode \spacefactor\@savsf \ifdim\@savsk>\z@ \hskip1sp \fi\fi - \@tempa[#1]{#2}% + \SL@orig@@next[#1]{#2}% } \def\SL@showlabelsplain#1{% \@bsphack \SL@setlabel{#1}\relax \ifhmode \spacefactor\@savsf \ifdim\@savsk>\z@ \hskip1sp \fi\fi - \@tempa{#1}% + \SL@orig@@next{#1}% +} +\def\SL@showlabelsplainstar#1{% + \@bsphack + \SL@setlabel{#1}\relax + \ifhmode \spacefactor\@savsf \ifdim\@savsk>\z@ \hskip1sp \fi\fi + \SL@orig@@next*{#1}% } \def\SL@initmakecaption{% \let\SL@origmakecaption\@makecaption \def\@makecaption##1##2{{% - \let\SL@setlabel\SL@inlinetext\SL@origmakecaption{##1}{##2}}}} + \let\SL@setlabel\SL@inlinetext + \SL@origmakecaption{##1}{##2}}}} \AtBeginDocument{\SL@initmakecaption} \def\SL@margtext#1{% \ifmmode \xdef\SL@labelname{\SL@prlabelname{#1}}% + \else\ifdim\displaywidth>0pt + \xdef\SL@labelname{\SL@prlabelname{#1}}% \else - \setbox\@tempboxa=\vbox to 0pt{\vss + \setbox\@tempboxa=\vbox to 0pt{% + \vss \hbox to \hsize{\SL@lrtext{#1}}}% \dp\@tempboxa\z@ \ifvmode @@ -119,21 +158,15 @@ \else \vadjust{\box\@tempboxa\nobreak}% \fi - \fi + \fi\fi } \def\SL@inlinetext#1{% -\ifmmode - \ifSL@AMS\else - \xdef\SL@labelname{\SL@prlabelname{#1}}% - \fi -\else \SL@interlinetextright{\SL@prlabelname{#1}}% -\fi } \def\SL@interlinetextleft{\SL@setlefttrue\SL@interlinetext} \def\SL@interlinetextright{\SL@setleftfalse\SL@interlinetext} \def\SL@interlinetext#1{% - \setbox\@tempboxa=\hbox{\showlabelsetlabel{#1}}\dp\@tempboxa\z@ + \setbox\@tempboxa=\hbox{\showlabelsetlabel{\SL@prlabelname{#1}}}\dp\@tempboxa\z@ \ifvmode \nointerlineskip\vbox to 0pt{\vss \hbox to \columnwidth{\hss \box\@tempboxa}}% @@ -144,13 +177,13 @@ \vbox to 0pt{\vss \hbox to 0pt{\hss\box\@tempboxa}% \showlabelrefline - }}% + }}% \else \hbox to 0pt{% \vbox to 0pt{\vss \box\@tempboxa \showlabelrefline - }\hss}% + }\hss}% \fi \penalty10000 \fi @@ -235,12 +268,22 @@ \DeclareOption{inner}{\SL@labelposition=1} \DeclareOption{left}{\SL@labelposition=2} \DeclareOption{right}{\SL@labelposition=3} -\DeclareOption{marginal}{\let\SL@setlabel\SL@margtext} -\DeclareOption{inline}{\let\SL@setlabel\SL@inlinetext} -\let\SL@setlabel\SL@margtext -\newif\if@showlabellabel -\@showlabellabeltrue -\DeclareOption{nolabel}{\@showlabellabelfalse} +\newif\ifSL@labelsinline +\SL@labelsinlinefalse +\DeclareOption{marginal}{\SL@labelsinlinefalse} +\DeclareOption{inline}{\SL@labelsinlinetrue} +\def\SL@setlabel{% + \ifSL@labelsinline + \let\@tempa\SL@inlinetext + \else + \let\@tempa\SL@margtext + \fi + \@tempa +} +\def\showlabelsinline{\SL@labelsinlinetrue} +\newif\ifSL@labellabel +\SL@labellabeltrue +\DeclareOption{nolabel}{\SL@labellabelfalse} \DeclareOption{final}{\let\showlabels\@gobble} \DeclareOption{draft}{} \ProcessOptions @@ -281,11 +324,18 @@ \let\SL@eqnlrtext\SL@eqnrighttext \fi \fi -\ifx\SL@setlabel\SL@inlinetext - \let\SL@eqnlrtext\SL@interlinetextleft -\fi -\if@showlabellabel +\ifSL@labellabel \showlabels{label} + \ifSL@AMS + \ifx\showlabels\@gobble + % do nothing -- we're in [final] mode (see test case t13) + \else + \let\maketag@@@\SL@maketag@@@ + \fi + \fi + \@ifundefined{theIEEEsubequationdis}\relax % and \theequationdis + {\SL@wrap@labeller{theIEEEsubequationdis} + \SL@wrap@labeller{theequationdis}} \fi \endinput %% -- cgit v1.2.3