summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/showlabels
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:06:47 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:06:47 +0000
commit8e6a1e0538bed5da111d30a4b313bed1f39da024 (patch)
tree6eaddcd9d84bc209c79f74baef164f42a69c38ae /Master/texmf-dist/tex/latex/showlabels
parent5df1f8c044e6a8994b45535154888455c09e7171 (diff)
showlabels
git-svn-id: svn://tug.org/texlive/trunk@1318 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/showlabels')
-rw-r--r--Master/texmf-dist/tex/latex/showlabels/showlabels.sty281
1 files changed, 281 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/showlabels/showlabels.sty b/Master/texmf-dist/tex/latex/showlabels/showlabels.sty
new file mode 100644
index 00000000000..9c491462684
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/showlabels/showlabels.sty
@@ -0,0 +1,281 @@
+%%
+%% This is file `showlabels.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% showlabels.dtx (with options: `package')
+%% Showlabels: Style to display labels in the margin
+%% This is the showlabels package
+%%
+%% This software is copyright, 1999, 2001--2005, Norman Gray.
+%%
+%% This program is free software; you can redistribute it and/or
+%% modify it under the terms of the GNU General Public License
+%% as published by the Free Software Foundation; either version 2
+%% of the License, or (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+%%
+%% Author: Norman Gray, norman@astro.gla.ac.uk.
+%% Department of Physics and Astronomy, University of Glasgow, UK
+%%
+%% See the file LICENCE for a copy of the GPL.
+%% You can also find an online copy at http://www.gnu.org/copyleft/gpl.html .
+%%
+%% $Id: showlabels.dtx,v 1.26 2005/03/17 18:39:35 norman Exp $
+%%
+\def\ParseRCSDate$#1: #2 #3 ${\def\SL@Date{#2}}
+\ParseRCSDate$Date: 2005/03/17 18:39:35 $
+\def\filename{showlabels}
+\def\fileversion{1.5a}
+\def\filedate{\SL@Date}
+\def\docdate{\SL@Date}
+\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
+ \SL@AMSfalse
+\else
+ \SL@AMStrue
+ \typeout{with amsmath equation tags}
+\fi
+\ifSL@AMS
+ \let\SL@maketag@@@=\maketag@@@
+ \def\maketag@@@#1{\SL@maketag@@@{#1}%
+ \ifx\df@label\@empty
+ \else
+ \SL@eqnlrtext{\df@label}%
+ \fi}
+\else
+ \let\SL@eqnnum=\@eqnnum
+ \def\@eqnnum{\SL@eqnnum
+ \expandafter\ifx\SL@labelname\relax
+ \else
+ \SL@eqnlrtext{\SL@labelname}%
+ \global\def\SL@labelname{\relax}%
+ \fi}
+ \global\def\SL@labelname{\relax}
+\fi
+\@ifundefined{ttfamily}
+ {\providecommand{\showlabelfont}{\small\tt}}
+ {\providecommand{\showlabelfont}{\small\ttfamily}}
+\providecommand{\showlabelsetlabel}[1]{\normalfont\showlabelfont #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\SL@showlabels#1#2{%
+ \@bsphack
+ \SL@setlabel{#2}\relax
+ \ifhmode \spacefactor\@savsf \ifdim\@savsk>\z@ \hskip1sp \fi\fi
+ \csname SL@orig#1\endcsname{#2}%
+}
+\def\SL@initmakecaption{%
+ \let\SL@origmakecaption\@makecaption
+ \def\@makecaption##1##2{{%
+ \let\SL@setlabel\SL@inlinetext\SL@origmakecaption{##1}{##2}}}}
+\AtBeginDocument{\SL@initmakecaption}
+\def\SL@margtext#1{%
+ \ifmmode
+ \ifSL@AMS\else
+ \xdef\SL@labelname{\SL@prlabelname{#1}}%
+ \fi
+ \else
+ \setbox\@tempboxa=\vbox to 0pt{\vss
+ \hbox to \hsize{\SL@lrtext{#1}}}%
+ \dp\@tempboxa\z@
+ \ifvmode
+ \@tempdima=\prevdepth
+ \nointerlineskip\box\@tempboxa\nobreak
+ \prevdepth=\@tempdima
+ \else
+ \vadjust{\box\@tempboxa\nobreak}%
+ \fi
+ \fi
+}
+\def\SL@inlinetext#1{%
+\ifmmode
+ \ifSL@AMS\else
+ \xdef\SL@labelname{\SL@prlabelname{#1}}%
+ \fi
+\else
+ \SL@interlinetextright{#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@
+ \ifvmode
+ \nointerlineskip\vbox to 0pt{\vss
+ \hbox to \columnwidth{\hss \box\@tempboxa}}%
+ \else
+ \ifSL@setleft
+ \hbox to 0pt{%
+\hss
+\vbox to 0pt{\vss
+ \hbox to 0pt{\hss\box\@tempboxa}%
+ \hrule width 0.05em height 1.5ex depth 0pt
+}}%
+ \else
+ \hbox to 0pt{%
+\vbox to 0pt{\vss
+ \box\@tempboxa
+ \hrule width 0.05em height 1.5ex depth 0pt
+}\hss}%
+ \fi
+ \penalty10000
+ \fi
+}
+\def\SL@margintext#1{{\showlabelsetlabel{\{\SL@prlabelname{#1}\}}}}
+\def\SL@righttext#1{\hfill\rlap{\quad\SL@margintext{#1}}}
+\def\SL@lefttext #1{\llap{\SL@margintext{#1}\quad}\hfill}
+\newif\ifSL@setleft
+\def\SL@setLR{%
+ \ifcase\SL@labelposition
+ % 0=outer margin
+ \ifodd\c@page
+ \SL@setleftfalse
+ \else
+ \SL@setlefttrue
+ \fi
+ \or
+ % 1=inner margin
+ \ifodd\c@page
+ \SL@setlefttrue
+ \else
+ \SL@setleftfalse
+ \fi
+ \or
+ % 2=left margin
+ \SL@setlefttrue
+ \or
+ % 3=right margin
+ \SL@setleftfalse
+ \else
+ \SL@canthappen{Impossible labelposition \the\SL@labelposition}
+ \SL@labelposition=3 % put everything in the right-margin for now
+ \SL@setleftfalse
+ \fi
+}
+\def\SL@alternatetext{%
+ \SL@setLR
+ \ifSL@setleft
+ \let\SL@next\SL@lefttext
+ \else
+ \let\SL@next\SL@righttext
+ \fi
+ \SL@next
+}
+\def\SL@twocoltext{%
+ \if@firstcolumn
+ \let\SL@next\SL@lefttext
+ \else
+ \let\SL@next\SL@righttext
+ \fi
+ \SL@next}
+\def\SL@eqnrighttext#1{\rlap{\quad\SL@margintext{#1}}}
+\def\SL@eqnlefttext #1{\hbox to 0pt{\kern -\columnwidth
+\llap{\SL@margintext{#1}\quad}\hss}}
+\def\SL@eqnalternatetext{%
+ \SL@setLR
+ \ifSL@setleft
+ \let\SL@next\SL@eqnlefttext
+ \else
+ \let\SL@next\SL@eqnrighttext
+ \fi
+ \SL@next
+}
+\def\SL@eqntwocoltext{%
+ \if@firstcolumn
+ \let\SL@next\SL@eqnlefttext
+ \else
+ \let\SL@next\SL@eqnrighttext
+ \fi
+ \SL@next}
+\def\SL@canthappen#1{%
+ \PackageError{showlabels}{#1}
+ {This shouldn't happen -- the package showlabels has a bug.
+ \MessageBreak
+ Please report this, if possible with a sample document which
+ \MessageBreak
+ demonstrates the problem, to \filemaintainer. Thanks.}}
+\newcount\SL@labelposition
+\SL@labelposition=0
+\DeclareOption{outer}{\SL@labelposition=0}
+\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}
+\DeclareOption{final}{\let\showlabels\@gobble}
+\DeclareOption{draft}{}
+\ProcessOptions
+\if@twocolumn
+ \let\SL@lrtext\SL@twocoltext
+ \let\SL@eqnlrtext\SL@eqntwocoltext
+\else
+ \ifcase\SL@labelposition
+ % 0=outer margin
+ \if@twoside
+ \let\SL@lrtext\SL@alternatetext
+ \let\SL@eqnlrtext\SL@eqnalternatetext
+ \else
+ \let\SL@lrtext\SL@righttext
+ \let\SL@eqnlrtext\SL@eqnrighttext
+ \fi
+ \or
+ % 1=inner margin
+ \if@twoside
+ \let\SL@lrtext\SL@alternatetext
+ \let\SL@eqnlrtext\SL@eqnalternatetext
+ \else
+ \let\SL@lrtext\SL@lefttext
+ \let\SL@eqnlrtext\SL@eqnlefttext
+ \fi
+ \or
+ % 2=left margin
+ \let\SL@lrtext\SL@lefttext
+ \let\SL@eqnlrtext\SL@eqnlefttext
+ \or
+ % 3=right margin
+ \let\SL@lrtext\SL@righttext
+ \let\SL@eqnlrtext\SL@eqnrighttext
+ \else
+ \SL@canthappen{Impossible labelposition \the\SL@labelposition}
+ \SL@labelposition=3 % put everything in the right-margin for now
+ \let\SL@lrtext\SL@righttext
+ \let\SL@eqnlrtext\SL@eqnrighttext
+ \fi
+\fi
+\ifx\SL@setlabel\SL@inlinetext
+ \let\SL@eqnlrtext\SL@interlinetextleft
+\fi
+\if@showlabellabel
+ \showlabels{label}
+\fi
+\endinput
+%%
+%% End of file `showlabels.sty'.