summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/undolabl
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/undolabl
Initial commit
Diffstat (limited to 'macros/latex/contrib/undolabl')
-rw-r--r--macros/latex/contrib/undolabl/README172
-rw-r--r--macros/latex/contrib/undolabl/undolabl-example.pdfbin0 -> 48824 bytes
-rw-r--r--macros/latex/contrib/undolabl/undolabl-example.tex131
-rw-r--r--macros/latex/contrib/undolabl/undolabl.dtx1123
-rw-r--r--macros/latex/contrib/undolabl/undolabl.pdfbin0 -> 304222 bytes
5 files changed, 1426 insertions, 0 deletions
diff --git a/macros/latex/contrib/undolabl/README b/macros/latex/contrib/undolabl/README
new file mode 100644
index 0000000000..981f752eaa
--- /dev/null
+++ b/macros/latex/contrib/undolabl/README
@@ -0,0 +1,172 @@
+README for undolabl package, 2015/03/29, v1.0l
+
+
+TABLE OF CONTENTS
+=================
+
+1 Introduction
+2 Download
+3 Installation
+4 Additional Packages
+5 Package Compatibility
+6 Authors/Maintainer
+7 Bug Reports
+8 Known Problems
+
+
+1 INTRODUCTION
+==============
+
+This LaTeX package allows to override existing labels,
+especially automatically generated ones.
+
+The main code of this package was invented by
+Ulrich Diez (eu_angelion AT web DOT de)
+and first published in the
+comp.text.tex newsgroup at Sun, 20 Apr 2008 16:39:26 +0200, with subject:
+Re: How to undefine/overwrite a label? (see e.g.
+http://groups.google.de/group/comp.text.tex/msg/af6cfe93917097da?dmode=source).
+While Ulrich Diez neither wanted to create a package himself yet
+nor have one published under his name, he granted the
+publication of his code. Therefore: Thanks!
+I (H.-Martin Münch) submitted this package to CTAN
+(after some updates of the documentation, mainly layout,
+ typos and such things.)
+
+This material is published under the LPPL 1.3c: This work may be
+distributed and/or modified under the conditions of the LaTeX Project
+Public License, either version 1.3c of this license or (at your option) any
+later version. This version of this license is in
+http://www.latex-project.org/lppl/lppl-1-3c.txt
+and the latest version of this license is in
+http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX version
+2005/12/01 or later.
+
+
+2 DOWNLOAD
+==========
+
+`undolabl' is available on CTAN:
+https://www.ctan.org/pkg/undolabl
+
+Also a ZIP file is provided that contains the files:
+the manual (undolabl.pdf), the example (undolabl-example.tex),
+the compiled example (undolabl-example.pdf),
+driver (undolabl.drv), undolabl.dtx,
+installation file (undolabl.ins),
+the style file (undolabl.sty),
+and this README, already sorted in a TDS tree:
+http://mirrors.ctan.org/install/macros/latex/contrib/undolabl.tds.zip
+
+
+3 INSTALLATION
+==============
+
+Installation with ZIP file in TDS format
+----------------------------------------
+The ZIP file `undolabl.tds.zip' contains the files
+sorted in a TDS tree. Thus you can directly unpack the
+ZIP file inside a TDS tree.
+See https://www.ctan.org/TDS-guidelines for an explanation
+of TDS.
+Example:
+ cd /...somewhere.../texmf
+ unzip /...downloadpath.../undolabl.tds.zip
+Do not forget to refresh the file name database of this
+TDS tree.
+Example:
+ texhash /...somewhere.../texmf
+
+Manual installation
+-------------------
+a) Download the undolabl files from CTAN.
+ If necessary, unpack them.
+b) Generate the package and driver files:
+ tex undolabl.dtx
+c) Install the file `*.sty' in your TDS tree:
+ cp *.sty TDS:tex/latex/undolabl/
+ Replace `TDS:' by the prefix of your TDS tree
+ (texmf directory).
+d) Create the documentation, if necessary, e.g.
+ pdflatex undolabl.dtx
+ makeindex -s gind.ist undolabl.idx
+ pdflatex undolabl.dtx
+ makeindex -s gind.ist undolabl.idx
+ pdflatex undolabl.dtx
+e) Update the databases, if necessary, e.g. for teTeX:
+ mktexlsr .../texmf
+f) Create the undolabl-example.pdf, if necessary, e.g.
+ pdflatex undolabl-example.tex
+ pdflatex undolabl-example.tex
+ pdflatex undolabl-example.tex
+g) Copy the documentation files to
+ "TDS:doc/latex/undolabl/":
+ README, undolabl.pdf, undolabl-example.tex,
+ undolabl-example.pdf.
+
+
+4 ADDITIONAL PACKAGES
+=====================
+
+undolabl itself does not load other packages,
+but working with labels usually means using
+* hyperref, https://www.ctan.org/pkg/hyperref
+which again loads other packages
+(see the result of the \listfiles command in the log-file
+of the example).
+Also the undolabl.dtx loads other packages
+(for unpacking and constructing the documentation),
+see "5.1 Downloads" in the manual
+http://mirrors.ctan.org/macros/latex/contrib/undolabl/undolabl.pdf
+
+
+5 PACKAGE COMPATIBILITY
+=======================
+
+undolabl is not compatible with versions of the acronym package
+older than 2015/03/21 v1.41. The recent version of acronym is
+available at
+https://www.ctan.org/pkg/acronym
+
+
+6 AUTHORS/MAINTAINER
+=====================
+
+* Author of the original main code:
+ Ulrich Diez (Thanks!)
+* Author of the recent package and current maintainer:
+ H.-Martin Münch
+
+
+7 BUG REPORTS
+==============
+
+A bug report should contain:
+* Comprehensive problem description. This includes error or
+ warning messages.
+* \errorcontextlines=\maxdimen can be added in the
+ TeX code to get more information in TeX error messages.
+* Minimal test file that shows the problem, but does not
+ contain any unnecessary packages and code.
+* Used drivers/programs.
+* Version information about used packages and programs.
+* If you are using LaTeX, then add "\listfiles". Then
+ a list of version information is printed at the end
+ of the LaTeX run.
+* Please no other files than the minimal test file.
+ The other files .log, .dvi, .ps, .pdf are seldom
+ necessary, so send them only on request.
+* Please .zip or .tar.gz your file(s) before sending them!
+
+Bug address
+-----------
+Bug reports can be send to the maintainer:
+ H.-Martin Münch
+ <Martin [dot] Muench [at] Uni-Bonn [dot] de>
+
+
+8 KNOWN PROBLEMS
+=================
+
+* as yet: none. \ No newline at end of file
diff --git a/macros/latex/contrib/undolabl/undolabl-example.pdf b/macros/latex/contrib/undolabl/undolabl-example.pdf
new file mode 100644
index 0000000000..4979248c8d
--- /dev/null
+++ b/macros/latex/contrib/undolabl/undolabl-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/undolabl/undolabl-example.tex b/macros/latex/contrib/undolabl/undolabl-example.tex
new file mode 100644
index 0000000000..45c7c7d895
--- /dev/null
+++ b/macros/latex/contrib/undolabl/undolabl-example.tex
@@ -0,0 +1,131 @@
+%%
+%% This is file `undolabl-example.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% undolabl.dtx (with options: `example')
+%%
+%% This is a generated file.
+%%
+%% Project: undolabl
+%% Version: 2015/03/29 v1.0l
+%%
+%% Copyright (C) 2010 - 2015 by
+%% H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de>
+%% Portions of code copyrighted by other people as marked.
+%%
+%% The usual disclaimer applies:
+%% If it doesn't work right that's your problem.
+%% (Nevertheless, send an e-mail to the maintainer
+%% when you find an error in this package.)
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c of this license or (at your option) any later
+%% version. This version of this license is in
+%% http://www.latex-project.org/lppl/lppl-1-3c.txt
+%% and the latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is H.-Martin Muench.
+%%
+%% The main code of this package was invented by
+%% Ulrich Diez (eu_angelion AT web DOT de)
+%% and first published in the comp.text.tex newsgroup
+%% at Sun, 20 Apr 2008 16:39:26 +0200, with subject:
+%% Re: How to undefine/overwrite a label? (see e.g.
+%% http://groups.google.de/group/comp.text.tex/msg/af6cfe93917097da?dmode=source
+%% ). While Ulrich Diez neither wanted to create a package himself yet
+%% nor have one published under his name, he granted the
+%% publication of his code. Therefore: Thanks!
+%%
+%% This work consists of the main source file undolabl.dtx,
+%% the README, and the derived files
+%% undolabl.sty, undolabl.pdf,
+%% undolabl.ins, undolabl.drv,
+%% undolabl-example.tex, undolabl-example.pdf.
+%%
+%% In memoriam
+%% Claudia Simone Barth + 1996/01/30
+%% Tommy Muench + 2014/01/02
+%% Hans-Klaus Muench + 2014/08/24
+%%
+\documentclass[british]{article}[2007/10/19]% v1.4h
+\usepackage{undolabl}[2015/03/29]% v1.0l
+%% There are no options for the undolabl package. %%
+\usepackage[%
+ extension=pdf,%
+ plainpages=false,%
+ pdfpagelabels=true,%
+ hyperindex=false,%
+ pdflang={en},%
+ pdftitle={undolabl package example},%
+ pdfauthor={H.-Martin Muench, after Ulrich Diez},%
+ pdfsubject={Example for the undolabl package},%
+ pdfkeywords={LaTeX, undolabl, undolabel, H.-Martin Muench, Ulrich Diez},%
+ pdfview=FitH,%
+ pdfstartview=FitH,%
+ pdfpagelayout=OneColumn,%
+ bookmarksopen=true%
+]{hyperref}[2012/11/06]% v6.83m; when you want to use nameref
+\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}%
+\listfiles
+\begin{document}
+\pagenumbering{arabic}
+\section*{Example for undolabl}
+
+This example demonstrates the use of package\newline
+\textsf{undolabl}, v1.0l as of 2015/03/29 (HMM).\newline
+For details please see the documentation!\newline
+
+\noindent Save per page about $200\unit{ml}$~water,
+$2\unit{g}$~CO$_{2}$ and $2\unit{g}$~wood:\newline
+Therefore please print only if this is really necessary.\newline
+I do NOT think, that it is necessary to print THIS file, really!
+
+\bigskip
+
+\section{Test}
+
+text \label{testlabel}\\
+page-reference: \pageref{testlabel}\\%% -> page 4
+sectional-reference: \ref{testlabel}\\%% -> section 4
+name-reference: \nameref{testlabel}%% -> Still another test
+
+\newpage
+
+\section{Another test}
+
+text \overridelabel{testlabel}\\
+page-reference: \pageref{testlabel}\\%% -> page 4
+sectional-reference: \ref{testlabel}\\%% -> section 4
+name-reference: \nameref{testlabel}%% -> Still another test
+
+\newpage
+
+\section{Yet another test}
+
+text \overridelabel{testlabel}\\
+page-reference: \pageref{testlabel}\\%% -> page 4
+sectional-reference: \ref{testlabel}\\%% -> section 4
+name-reference: \nameref{testlabel}%% -> Still another test
+
+\newpage
+
+\section{Still another test}
+
+text \overridelabel{testlabel}\\
+page-reference: \pageref{testlabel}\\%% -> page 4
+sectional-reference: \ref{testlabel}\\%% -> section 4
+name-reference: \nameref{testlabel}%% -> Still another test
+
+\end{document}
+
+\endinput
+%%
+%% End of file `undolabl-example.tex'.
diff --git a/macros/latex/contrib/undolabl/undolabl.dtx b/macros/latex/contrib/undolabl/undolabl.dtx
new file mode 100644
index 0000000000..180876aefd
--- /dev/null
+++ b/macros/latex/contrib/undolabl/undolabl.dtx
@@ -0,0 +1,1123 @@
+% \iffalse meta-comment
+%
+% File: undolabl.dtx
+% Version: 2015/03/29 v1.0l
+%
+% Copyright (C) 2010 - 2015 by
+% H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de>
+% Portions of code copyrighted by other people as marked.
+%
+% The main code of this package was invented by Ulrich Diez
+% and first published in the comp.text.tex newsgroup
+% at Sun, 20 Apr 2008 16:39:26 +0200, with subject:
+% Re: How to undefine/overwrite a label? (see e.g.
+% http://groups.google.de/group/comp.text.tex/msg/af6cfe93917097da?dmode=source
+% ). While Ulrich Diez neither wanted to create a package himself yet
+% nor have one published under his name, he granted the
+% publication of his code. Therefore: Thanks!
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3c of this license or (at your option) any later
+% version. This version of this license is in
+% http://www.latex-project.org/lppl/lppl-1-3c.txt
+% and the latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is H.-Martin Muench.
+%
+% This work consists of the main source file undolabl.dtx,
+% the README, and the derived files
+% undolabl.sty, undolabl.pdf,
+% undolabl.ins, undolabl.drv,
+% undolabl-example.tex, undolabl-example.pdf.
+%
+% 'undolabl' is available on CTAN:
+% https://www.ctan.org/pkg/undolabl
+%
+% Also a TDS.ZIP file is provided that contains all the files
+% already sorted in a TDS tree:
+% http://mirrors.ctan.org/install/macros/latex/contrib/undolabl.tds.zip
+%
+%<*ignore>
+\begingroup
+ \catcode123=1 %
+ \catcode125=2 %
+ \def\x{LaTeX2e}%
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************}
+\Msg{* Installation}
+\Msg{* Package: undolabl 2015/03/29 v1.0l Overriding labels (HMM)}
+\Msg{************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\let\MetaPrefix\relax
+\preamble
+
+This is a generated file.
+
+Project: undolabl
+Version: 2015/03/29 v1.0l
+
+Copyright (C) 2010 - 2015 by
+ H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de>
+Portions of code copyrighted by other people as marked.
+
+The usual disclaimer applies:
+If it doesn't work right that's your problem.
+(Nevertheless, send an e-mail to the maintainer
+ when you find an error in this package.)
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3c of this license or (at your option) any later
+version. This version of this license is in
+ http://www.latex-project.org/lppl/lppl-1-3c.txt
+and the latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainer of this work is H.-Martin Muench.
+
+The main code of this package was invented by
+Ulrich Diez (eu_angelion AT web DOT de)
+and first published in the comp.text.tex newsgroup
+at Sun, 20 Apr 2008 16:39:26 +0200, with subject:
+Re: How to undefine/overwrite a label? (see e.g.
+http://groups.google.de/group/comp.text.tex/msg/af6cfe93917097da?dmode=source
+). While Ulrich Diez neither wanted to create a package himself yet
+nor have one published under his name, he granted the
+publication of his code. Therefore: Thanks!
+
+This work consists of the main source file undolabl.dtx,
+the README, and the derived files
+ undolabl.sty, undolabl.pdf,
+ undolabl.ins, undolabl.drv,
+ undolabl-example.tex, undolabl-example.pdf.
+
+In memoriam
+ Claudia Simone Barth + 1996/01/30
+ Tommy Muench + 2014/01/02
+ Hans-Klaus Muench + 2014/08/24
+
+\endpreamble
+\let\MetaPrefix\DoubleperCent
+
+\generate{%
+ \file{undolabl.ins}{\from{undolabl.dtx}{install}}%
+ \file{undolabl.drv}{\from{undolabl.dtx}{driver}}%
+ \usedir{tex/latex/undolabl}%
+ \file{undolabl.sty}{\from{undolabl.dtx}{package}}%
+ \usedir{doc/latex/undolabl}%
+ \file{undolabl-example.tex}{\from{undolabl.dtx}{example}}%
+}
+
+\catcode32=13\relax% active space
+\let =\space%
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* undolabl.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `undolabl.drv'}
+\Msg{* through (pdf)LaTeX, e.g.}
+\Msg{* pdflatex undolabl.drv}
+\Msg{* makeindex -s gind.ist undolabl.idx}
+\Msg{* pdflatex undolabl.drv}
+\Msg{* makeindex -s gind.ist undolabl.idx}
+\Msg{* pdflatex undolabl.drv}
+\Msg{*}
+\Msg{* At least three runs are necessary e.g. to get the}
+\Msg{* references right!}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%
+% \section{The documentation driver file}
+%
+% The next bit of code contains the documentation driver file for
+% \TeX , i.\,e., the file that will produce the documentation you
+% are currently reading. It will be extracted from this file by the
+% \texttt{docstrip} programme. That is, run \LaTeX{} on \texttt{docstrip}
+% and specify the \texttt{driver} option when \texttt{docstrip}
+% asks for options.
+%
+% \begin{macrocode}
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}[2014/05/01]
+\ProvidesFile{undolabl.drv}%
+ [2015/03/29 v1.0l Overriding labels (HMM)]
+\documentclass{ltxdoc}[2014/09/29]% v2.0u
+\usepackage{holtxdoc}[2012/03/21]% v0.24
+%% undolabl may work with earlier versions of LaTeX2e and those
+%% class and package, but this was not tested.
+%% Please consider updating your LaTeX, class, and package
+%% to the most recent version (if they are not already the most
+%% recent version).
+\hypersetup{%
+ pdfsubject={LaTeX2e package for overriding labels (HMM)},%
+ pdfkeywords={LaTeX, undolabl, undolabel, undo label, label, override, H.-Martin Muench},%
+ pdfencoding=auto,%
+ pdflang={en},%
+ breaklinks=true,%
+ linktoc=all,%
+ pdfstartview=FitH,%
+ pdfpagelayout=OneColumn,%
+ bookmarksnumbered=true,%
+ bookmarksopen=true,%
+ bookmarksopenlevel=3,%
+ pdfmenubar=true,%
+ pdftoolbar=true,%
+ pdfwindowui=true,%
+ pdfnewwindow=true%
+}
+\CodelineIndex
+\hyphenation{docu-ment}
+\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}%
+\begin{document}
+ \DocInput{undolabl.dtx}%
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \fi
+%
+% \CheckSum{107}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \GetFileInfo{undolabl.drv}
+%
+% \begingroup
+% \def\x{\#,\$,\^,\_,\~,\ ,\&,\{,\},\%}%
+% \makeatletter
+% \@onelevel@sanitize\x
+% \expandafter\endgroup
+% \expandafter\DoNotIndex\expandafter{\x}
+% \expandafter\DoNotIndex\expandafter{\string\ }
+% \begingroup
+% \makeatletter
+% \lccode`9=32\relax
+% \lowercase{%^^A
+% \edef\x{\noexpand\DoNotIndex{\@backslashchar9}}%^^A
+% }%^^A
+% \expandafter\endgroup\x
+%
+% \DoNotIndex{\",\-,\,,\\,\noindent}
+% \DoNotIndex{\documentclass,\usepackage,\ProvidesPackage,\begin,\end}
+% \DoNotIndex{\MessageBreak}
+% \DoNotIndex{\NeedsTeXFormat,\DoNotIndex,\verb}
+% \DoNotIndex{\def,\edef,\gdef,\global}
+% \DoNotIndex{\ifx,\listfiles,\mathord,\mathrm}
+% \DoNotIndex{\kvoptions,\SetupKeyvalOptions,\ProcessKeyvalOptions}
+% \DoNotIndex{\bigskip,\space,\thinspace,\ldots}
+% \DoNotIndex{\indent,\noindent,\newline,\linebreak,\pagebreak,\newpage}
+% \DoNotIndex{\textbf,\textit,\textsf,\texttt,\textsc,\textquotedblleft,\textquotedblright}
+% \DoNotIndex{\plainTeX,\TeX,\LaTeX,\pdfLaTeX}
+% \DoNotIndex{\chapter,\section}
+% \DoNotIndex{\Large}
+%
+% \title{The \xpackage{undolabl} package}
+% \date{2015/03/29 v1.0l}
+% \author{H.-Martin M\"{u}nch\\\xemail{Martin.Muench at Uni-Bonn.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% \noindent This \LaTeX{} package allows to override existing labels,
+% especially automatically generated ones.
+% \end{abstract}
+%
+% \noindent \textbf{WARNING}: Since version 1.0d [2010/07/15] the |\undonewlabel|
+% command takes only one argument,\\
+% \texttt{\textbackslash undonewlabel\{<\textit{label name}>\}},\\
+% instead of two,\\
+% \texttt{\textbackslash undonewlabel\{<\textit{label name}>\}\{\textbackslash on@line\}}.\\
+% Packages or documents, which used older versions of the \xpackage{undolabl} package, must be
+% updated by removing the second argument of |\undonewlabel|, i.\,e. the |{\on@line}|.\\
+%
+% \noindent Note: The main code of this package was invented by\\
+% \textbf{ULRICH DIEZ}\\
+% and first published in the \Newsgroup{comp.text.tex} newsgroup at\\
+% \texttt{Sun,~20~Apr~2008~16:39:26~+0200}, with subject:\\
+% \texttt{Re:~How~to~undefine/overwrite~a~label?} (see e.\,g.
+% \url{http://groups.google.de/group/comp.text.tex/msg/af6cfe93917097da?dmode=source}%
+% ).\\
+% While \textbf{ULRICH DIEZ} neither wanted to create a~package himself yet
+% nor have one published under his name, he granted the publication of his code.
+% Therefore: Thanks!
+% I submitted this package to CTAN (after some updates of the documentation,
+% mainly layout, typos and such things) and try to maintain it.
+%
+% \bigskip
+%
+% \noindent Disclaimer for web links: The author is not responsible for any contents
+% referred to in this work unless he has full knowledge of illegal contents.
+% If any damage occurs by the use of information presented there, only the
+% author of the respective pages might be liable, not the one who has referred
+% to these pages.
+%
+% \bigskip
+%
+% \noindent {\color{green} Save per page about $200\unit{ml}$ water,
+% $2\unit{g}$ CO$_{2}$ and $2\unit{g}$ wood:\\
+% Therefore please print only if this is really necessary.}
+%
+% \newpage
+%
+% \tableofcontents
+%
+% \newpage
+%
+% \section{Introduction\label{sec:Introduction}}
+%
+% \indent The package's name \texttt{undolabl} is an eight-letter
+% abbreviation for the phrases ``undo'' and ``label''.\\
+%
+% This package allows to override existing labels,
+% especially automatically generated ones.\\
+%
+% When an instance of the |\label|-macro occurs in the document\linebreak
+% (e.\,g.~|\label{foo}|), then a delayed |\write| (a~write which is
+% performed at shipout-time when the page-number is determined) to
+% the \xfile{.aux} file is issued and you find in the \xfile{.aux} file
+% something like:
+% \begin{verbatim}
+% \newlabel{foo}{{<page-no>}{<sectional no>}{<probably something else>}}
+% \end{verbatim}
+% During the beginning of the next \LaTeX{}-run, the \xfile{.aux} file will be
+% read and
+% \begin{verbatim}
+% \newlabel{foo}{{<page-no>}{<sectional no>}{<probably something else>}}
+% \end{verbatim}
+% is expanded to
+% \begin{verbatim}
+% \@newl@bel r{foo}{{<page-no>}{<sectional no>}{<probably something else>}}
+% \end{verbatim}
+% which in turn gets expanded to something like (pseudo code):
+% \begin{verbatim}
+% IF (macro \r@foo is already defined)
+% THEN
+% - Issue an error-message,
+% - Make sure that the multiply-defined-labels-warning occurs
+% in the log-file
+% ELSE
+% \def\r@foo{{<page-no>}{<sectional no>}{<probably something else>}}
+% ENDIF
+% \end{verbatim}
+%
+% Referencing works as follows:\\
+% |\ref{foo}| |->|
+% \begin{description}
+% \item[-] expand |\r@foo|: |{<page-no>}{<sectional no>}{<probably something else>}|
+%
+% \item[-] grab the second from the resulting arguments: |<sectional no>|
+% \end{description}
+% |\pageref{foo}| |->|
+% \begin{description}
+% \item[-] expand |\r@foo|: |{<page-no>}{<sectional no>}{<probably something else>}|
+%
+% \item[-] grab the first from the resulting arguments: |<page-no>|
+% \end{description}
+% Back to the |\label|-mechanism:
+% \begin{description}
+% \item[-] At the beginning of the \LaTeX{}-run, all the |\r@<label>|-macros
+% get defined from reading the \xfile{.aux} file. The |\r@<label>|-macros
+% get used by the referencing-macros (|\ref|, |\pageref|,\ldots{}) during
+% the \LaTeX{}-run.
+%
+% \item[-] During the \LaTeX{}-run, the \xfile{.aux} file gets rewritten.
+%
+% \item[-] At the end of the \LaTeX{}-run, the \xfile{.aux} file (which was
+% rewritten/newly created during the \LaTeX{}-run) is read in order
+% to detect whether references have changed during the current
+% \LaTeX{}-run.
+% \end{description}
+% But this time |\@newl@bel| is redefined (|\let| equal to |\@testdef|)
+% and thus this time\\
+% \begin{verbatim}
+% \@newl@bel r{foo}{{<page-no>}{<sectional no>}{<probably something else>}}
+% \end{verbatim}
+% expands to something like (pseudo code):
+% \begin{verbatim}
+% Compare the (newly written) third argument (that is:
+% {{<page-no>}{<sectional no>}{<probably something else>}} )
+% to the (current/former) definition of \r@foo.
+% If the two are different, then some page- or section-number
+% related to referencing has changed from the last to the current
+% LaTeX-run, thus in this case issue a message in the log-file:
+% "References may have changed. Rerun LaTeX in order to get
+% cross-references right".
+% \end{verbatim}
+% So what do you need to do in order to override a label:
+% \begin{description}
+% \item[-] First you need to write to the \xfile{.aux} file to silently undefine
+% the associated |\r@<label>|-macro if it is already defined.
+% That is why |\overridelabel| writes in terms of |\protected@write|
+% to the \xfile{.aux} file:
+% \begin{verbatim}
+% \undonewlabel{<label>}
+% \end{verbatim}
+% |\undonewlabel| \textquotedblleft undefines\textquotedblright\ the
+% |\r@<label>|-macro. (How this works will be explained below.)
+%
+% \item[-] Then |\overridelabel| can call |\label{<label>}| again
+% and thus produce another |\newlabel{<label>}|-entry to the
+% \xfile{.aux} file.
+% \end{description}
+% In the \xfile{.aux} file all this results in a sequence like:
+% \begin{verbatim}
+% % from the former \label-call:
+% \newlabel{<label>}{...}
+% |->| \r@<label>-macro gets produced.
+% % from the \overrridelabel-call:
+% % - call to \undonewlabel within \overrridelabel:
+% \undonewlabel{<label>}
+% |->| \r@<label>-macro gets destroyed.
+% % - call to \label within \overrridelabel:
+% \newlabel{<label>}{...}
+% |->| a new \r@<label>-macro but no multiply-label-defined warning
+% gets produced.
+% \end{verbatim}
+%
+% There is another issue left:
+% \begin{description}
+% \item[-] It was said that \xfile{.aux} file is read at the beginning and at the
+% end of the \LaTeX{}-run for detecting whether references have changed.
+%
+% \item[-] When overriding a |<label>|, there will be several
+% |\newlabel{<label>}|-calls associated to the same label-name in
+% the \xfile{.aux} file.
+%
+% \item[-] At the beginning of the \LaTeX{}-run only the last one counts for
+% defining the associated |\r@<label>|-macro.
+%
+% \item[-] But at the end, when the new \xfile{.aux} file is read, they all count
+% and thus with all these entries but the last one, the
+% above-mentioned |\@testdef|-comparison will yield difference and thus
+% in any case cause a warning-message about references having
+% changed although that might not be a correct statement.
+% \end{description}
+%
+% \textbf{ULRICH DIEZ} decided to catch this up by his |\undolabl@testdef| command.
+% The |\undolabl@testdef|-comparison-mechanism gets enhanced via
+% \textquotedblleft replacing\textquotedblright{}. This works as follows:
+% When the \xfile{.aux} file is read at the beginning of the \LaTeX{}-run,
+% |\@newl@bel| is \underline{not} let equal to |\@testdef|.
+% When the \xfile{.aux} file is read at the end of the \LaTeX{}-run,
+% |\@newl@bel| \underline{is} let equal to |\@testdef|.
+% Thus it is sufficient to write into the beginning of the \xfile{.aux} file
+% a direction which leads to \nolinebreak{|\let|ting} |\@newl@bel| equal to
+% |\undolabl@testdef| in case its definition equals |\@testdef|. That direction
+% is called \nolinebreak{\textquotedblleft |\reset@newl@bel|\textquotedblright{}.}
+% Also, when the \xfile{.aux} file is read at the end of the \LaTeX{}-run,
+% |\undonewlabel|-entries therein should do nothing, thus
+% |\undonewlabel| is |\let| equal to |\@gobble|.
+%
+% \section{Usage}
+%
+% Load the package placing
+% \begin{quote}
+% |\usepackage{undolabl}|
+% \end{quote}
+% \noindent in the preamble of your \LaTeXe\ source file.\\
+%
+% When an existing label shall be replaced by a new one, say\\
+% |\overridelabel{<label name>}|\\
+% (where |<label name>| is the name of the label to be replaced
+% by the new one), instead of just |\label{<label name>}|,
+% which would produce a\\
+% |LaTeX Warning: Label `<label name>' multiply defined.|
+%
+% \section{Example}
+%
+% \begin{macrocode}
+%<*example>
+\documentclass[british]{article}[2007/10/19]% v1.4h
+\usepackage{undolabl}[2015/03/29]% v1.0l
+%% There are no options for the undolabl package. %%
+\usepackage[%
+ extension=pdf,%
+ plainpages=false,%
+ pdfpagelabels=true,%
+ hyperindex=false,%
+ pdflang={en},%
+ pdftitle={undolabl package example},%
+ pdfauthor={H.-Martin Muench, after Ulrich Diez},%
+ pdfsubject={Example for the undolabl package},%
+ pdfkeywords={LaTeX, undolabl, undolabel, H.-Martin Muench, Ulrich Diez},%
+ pdfview=FitH,%
+ pdfstartview=FitH,%
+ pdfpagelayout=OneColumn,%
+ bookmarksopen=true%
+]{hyperref}[2012/11/06]% v6.83m; when you want to use nameref
+\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}%
+\listfiles
+\begin{document}
+\pagenumbering{arabic}
+\section*{Example for undolabl}
+
+This example demonstrates the use of package\newline
+\textsf{undolabl}, v1.0l as of 2015/03/29 (HMM).\newline
+For details please see the documentation!\newline
+
+\noindent Save per page about $200\unit{ml}$~water,
+$2\unit{g}$~CO$_{2}$ and $2\unit{g}$~wood:\newline
+Therefore please print only if this is really necessary.\newline
+I do NOT think, that it is necessary to print THIS file, really!
+
+\bigskip
+
+\section{Test}
+
+text \label{testlabel}\\
+page-reference: \pageref{testlabel}\\%% -> page 4
+sectional-reference: \ref{testlabel}\\%% -> section 4
+name-reference: \nameref{testlabel}%% -> Still another test
+
+\newpage
+
+\section{Another test}
+
+text \overridelabel{testlabel}\\
+page-reference: \pageref{testlabel}\\%% -> page 4
+sectional-reference: \ref{testlabel}\\%% -> section 4
+name-reference: \nameref{testlabel}%% -> Still another test
+
+\newpage
+
+\section{Yet another test}
+
+text \overridelabel{testlabel}\\
+page-reference: \pageref{testlabel}\\%% -> page 4
+sectional-reference: \ref{testlabel}\\%% -> section 4
+name-reference: \nameref{testlabel}%% -> Still another test
+
+\newpage
+
+\section{Still another test}
+
+text \overridelabel{testlabel}\\
+page-reference: \pageref{testlabel}\\%% -> page 4
+sectional-reference: \ref{testlabel}\\%% -> section 4
+name-reference: \nameref{testlabel}%% -> Still another test
+
+\end{document}
+%</example>
+% \end{macrocode}
+%
+% \StopEventually{}
+%
+% \pagebreak
+%
+% \section{The implementation}
+%
+% For a somewhat longer description see section~\ref{sec:Introduction}.\\
+
+% We start off by checking that we are loading into \LaTeXe{} and
+% announcing the name and version of this package.\\
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[2014/05/01]
+\ProvidesPackage{undolabl}%
+ [2015/03/29 v1.0l Overriding labels (HMM)]
+%% undolabl may work with earlier versions of LaTeX2e,
+%% but this was not tested. Please consider updating
+%% your LaTeX2e to the most recent version
+%% (if it is not already the most recent version).
+
+% \end{macrocode}
+%
+% \begin{macro}{\AtBeginDocument}
+%
+% |\AtBeginDocument| it is checked whether writing to files is allowed.
+% Some packages (e.\,g. \xpackage{tikz} and \xpackage{selectp}) sometimes prevent
+% the output to the \xfile{aux} file. In that case a warning or an error message
+% is issued. This is no problem as long as there is/was another compilation run
+% where the labels can/could be processed via the \xfile{aux} file.
+%
+% \begin{macrocode}
+\AtBeginDocument{%
+ \if@filesw%
+% \end{macrocode}
+%
+% \noindent then |\relax|.\newline
+% When writing to files is not allowed, nothing can be done. But when
+% the labels were already processed via the \xfile{aux} file,
+% nothing needs to be done (if enough compilation runs have been done before).
+%
+% \begin{macrocode}
+ \else%
+ \@ifpackageloaded{tikz}{%
+ \PackageWarning{undolabl}%
+ {The undolabl package was not allowed to write to an\MessageBreak%
+ .aux file. This package does not work without access\MessageBreak%
+ to an .aux file.\MessageBreak%
+ It is OK if the .aux file was already updated\MessageBreak%
+ by a previouse compiler run\MessageBreak%
+ and would not have changed anyway.\MessageBreak%
+ }%
+ }{\PackageError{undolabl}{No writing to auxiliary file allowed}%
+ {The undolabl package was not allowed to write to an .aux file.\MessageBreak%
+ This package does not work without access to an .aux file.\MessageBreak%
+ Press Ctrl+Z to exit.\MessageBreak%
+ But it is OK if the .aux file was already updated\MessageBreak%
+ by a previouse compiler run\MessageBreak%
+ and would not have changed anyway.\MessageBreak%
+ }%
+ }%
+ \fi%
+% \end{macrocode}
+%
+% \newpage
+%
+% The \textsf{undolabl} and the \textsf{acronym} packages shared some commands
+% with the same names and where therefore incompatible. \textsc{Jan Heisswolf}
+% (ITIV at KIT) reported this in 2014 (Thanks!). Changing the macros in the
+% \textsf{undolabl} package also required changing them in the \textsf{pageslts}
+% package and providing a fallback mechanism for the old commands used in
+% existing \xfile{.aux} files. When I wanted to implement this in 2015,
+% it turned out the \textsf{acronym} package had been updated a week before
+% (Thanks!) and fixed the incompatibility. Now what remained to be done
+% was just to check that no older acronym package is used:
+%
+% \begin{macrocode}
+ \@ifpackageloaded{acronym}%
+ {\@ifpackagelater{acronym}{2015/03/20}%
+ {% later, OK
+ }{\PackageError{undolabl}{Incompatible old acronym package detected}%
+ {The undolabl package is not compatible with the acronym package%
+ \MessageBreak%
+ older than 2015/03/21 v1.41. Please update your acronym package!%
+ \MessageBreak%
+ }%
+ }%
+ }{% not loaded, OK
+ }%
+ }
+
+% \end{macrocode}
+% \end{macro}
+%
+% \DescribeMacro{\overridelabel}
+% In order to override a label, first one needs to write to the
+% \xfile{.aux} file to silently undefine the associated |\r@<label>|-macro
+% if it is already defined. That is why |\overridelabel| writes in
+% terms of |\protected@write| to the \xfile{.aux} file:
+% |\undonewlabel{<label>}|,
+% \textquotedblleft undefining\textquotedblright{} the |\r@<label>|-macro.
+% And a message about this is given.
+%
+% \begin{macrocode}
+\newcommand\overridelabel[1]{%
+\@bsphack%
+ \if@filesw%
+ \protected@write\@auxout{}{\string\undonewlabel{#1}}%
+ \@overriddenmessage s{#1}%
+% \end{macrocode}
+%
+% Then |\overridelabel| can call |\label{<label>}| again
+% and thus produce another |\newlabel{<label>}|-entry to the
+% \xfile{.aux} file.
+%
+% \begin{macrocode}
+ \label{#1}%
+ \fi%
+ \@esphack%
+ }
+
+% \end{macrocode}
+%
+% \DescribeMacro{\undonewlabel}
+%
+% \begin{macrocode}
+\newcommand\undonewlabel{\@und@newl@bel r}
+
+% \end{macrocode}
+%
+% \DescribeMacro{\@und@newl@bel}
+%
+% If |\r@<label>| is undefined, give an error message:
+%
+% \begin{macrocode}
+\newcommand\@und@newl@bel[2]{%
+ \@ifundefined{#1@#2}{%
+ \PackageError{undolabl}{Label `#2' shall be overridden ^^J%
+ although it does not yet exist}{%
+ A label which does not exist cannot be overridden.}%
+ }{%
+% \end{macrocode}
+%
+% \pagebreak
+%
+% \noindent otherwise:\newline
+% Undefine |\r@label| via letting it equal to |\relax|:
+%
+% \begin{macrocode}
+ \expandafter\global
+ \expandafter\let
+ \csname #1@#2\endcsname\relax%
+ }%
+ }
+
+% \end{macrocode}
+%
+% \DescribeMacro{\@overriddenmessage}
+%
+% Command for the notification of overriding a label:
+%
+% \begin{macrocode}
+\newcommand\@overriddenmessage[2]{%
+ \@ifundefined{#1@#2}{\global\@namedef{#1@#2}{i}}{%
+ \expandafter\g@addto@macro\csname #1@#2\endcsname{i}%
+ }%
+ \PackageWarning{undolabl}{Label `#2' overridden}%
+ }
+
+% \end{macrocode}
+%
+% \DescribeMacro{\undolabl@testdef}
+%
+% \begin{macrocode}
+\newcommand\undolabl@testdef[3]{%
+ \@ifundefined{s@#2}\@secondoftwo\@firstofone{%
+ \expandafter\ifx\csname s@#2\endcsname\empty
+ \expandafter\@firstofone
+ \else%
+ \expandafter\xdef\csname s@#2\endcsname{%
+ \expandafter\expandafter
+ \expandafter\@gobble
+ \csname s@#2\endcsname
+ }%
+ \expandafter\@gobble
+ \fi%
+ }{\@testdef{#1}{#2}{#3}%
+ }%
+ }
+
+% \end{macrocode}
+%
+% \DescribeMacro{\protected@write\\@auxout}
+%
+% \begin{macrocode}
+\if@filesw%
+ \protected@write\@auxout{}{\string\reset@newl@bel}%
+\fi%
+
+% \end{macrocode}
+%
+% \DescribeMacro{\reset@newl@bel}
+%
+% \begin{macrocode}
+\newcommand\reset@newl@bel{%
+ \ifx\@newl@bel\@testdef%
+ \let\@newl@bel\undolabl@testdef%
+ \let\undonewlabel\@gobble%
+ \fi%
+ }
+
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \pagebreak
+%
+% \section{Installation}
+%
+% \subsection{Downloads\label{ss:Downloads}}
+%
+% Everything is available at \url{https://www.ctan.org}
+% but may need additional packages themselves.\\
+%
+% \DescribeMacro{undolabl.dtx}
+% For unpacking the |undolabl.dtx| file and constructing the documentation
+% it is required:
+% \begin{description}
+% \item[-] \TeX{} Format \LaTeXe{}, \url{https://www.CTAN.org}
+%
+% \item[-] document class \xpackage{ltxdoc}, 2014/09/29, v2.0u,
+% \url{https://www.ctan.org/pkg/ltxdoc}
+%
+% \item[-] package \xpackage{holtxdoc}, 2012/03/21, v0.24,
+% \url{https://www.ctan.org/pkg/holtxdoc}
+%
+% \item[-] package \xpackage{hypdoc}, 2011/08/19, v1.11,
+% \url{https://www.ctan.org/pkg/hypdoc}
+% \end{description}
+%
+% \DescribeMacro{undolabl.sty}
+% The |undolabl.sty| for \LaTeXe{} (i.\,e.~each document using
+% the \xpackage{undolabl} package) requires:
+% \begin{description}
+% \item[-] \TeX{} Format \LaTeXe{}, \url{https://www.CTAN.org}
+% \end{description}
+%
+% \DescribeMacro{undolabl-example.tex}
+% The |undolabl-example.tex| requires the same files as all
+% documents using the \xpackage{undolabl} package and additionally:
+% \begin{description}
+% \item[-] class \xpackage{article}, 2014/09/29, v1.4h,
+% \url{https://www.ctan.org/pkg/article}
+%
+% \item[-] package \xpackage{hyperref}, 2012/11/06, v6.83m:
+% \url{https://www.ctan.org/pkg/hyperref},
+% if |\nameref| shall be used (and when the references
+% shall be hyperlinked, of course)
+%
+% \item[-] package \xpackage{undolabl}, 2015/03/29, v1.0l,
+% \url{https://www.ctan.org/pkg/undolabl}\\
+% (Well, it is the example file for this package, and because you are reading
+% the documentation for the \xpackage{undolabl} package, it can be assumed
+% that you already have some version of it -- is it the current one?)
+% \end{description}
+%
+% \DescribeMacro{Oberdiek}
+% \DescribeMacro{holtxdoc}
+% \DescribeMacro{hypdoc}
+% All packages of \textsc{Heiko Oberdiek}'s bundle `oberdiek'
+% (especially \xpackage{holtxdoc} and \xpackage{hypdoc})
+% are also available in a TDS compliant ZIP archive:\\
+% \url{http://mirrors.ctan.org/install/macros/latex/contrib/oberdiek.tds.zip}.\\
+% It is probably best to download and use this, because the packages in there
+% are quite probably both recent and compatible among themselves.\\
+%
+% \DescribeMacro{hyperref}
+% \xpackage{hyperref} is not included in that bundle and needs to be
+% downloaded separately,\\
+% \url{http://mirror.ctan.org/install/macros/latex/contrib/hyperref.tds.zip}.\\
+%
+% \DescribeMacro{M\"{u}nch}
+% A hyperlinked list of my (other) packages can be found at\\
+% \url{https://www.ctan.org/author/muench-hm}.
+%
+% \pagebreak
+%
+% \subsection{Package, unpacking TDS}
+% \paragraph{Package.} This package is available at
+% \url{https://www.ctan.org/pkg/undolabl}, especially
+% the manual (README, undolabl.pdf), the example (source: undolabl-example.tex,
+% compiled: undolabl-example.pdf), and the undolabl.dtx.
+% There is also an undolabl.tds.zip available:
+% \url{http://mirrors.ctan.org/install/macros/latex/contrib/undolabl.tds.zip}
+% (everything in \xfile{TDS} compliant, compiled format),
+% which additionally contains\\
+% \begin{tabular}{ll}
+% undolabl.ins & The installation file.\\
+% undolabl.drv & The driver to generate the documentation.\\
+% undolabl.sty & The \xext{sty}le file.\\
+% undolabl-example.tex & The example file.
+% \end{tabular}
+%
+% \bigskip
+%
+% \noindent For required other packages, please see the preceding subsection.
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip{} archive. The files are extracted by running the
+% \xext{.dtx} through \plainTeX{}:
+% \begin{quote}
+% \verb|tex undolabl.dtx|
+% \end{quote}
+%
+% \noindent About generating the documentation see paragraph~\ref{GenDoc} below.\\
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \def\t{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
+% undolabl.sty & tex/latex/undolabl/undolabl.sty\\
+% undolabl.pdf & doc/latex/undolabl/undolabl.pdf\\
+% undolabl-example.tex & doc/latex/undolabl/undolabl-example.tex\\
+% undolabl-example.pdf & doc/latex/undolabl/undolabl-example.pdf\\
+% undolabl.dtx & source/latex/undolabl/undolabl.dtx\\
+% \end{tabular}^^A
+% }^^A
+% \sbox0{\t}^^A
+% \ifdim\wd0>\linewidth
+% \begingroup
+% \advance\linewidth by\leftmargin
+% \advance\linewidth by\rightmargin
+% \edef\x{\endgroup
+% \def\noexpand\lw{\the\linewidth}^^A
+% }\x
+% \def\lwbox{^^A
+% \leavevmode
+% \hbox to \linewidth{^^A
+% \kern-\leftmargin\relax
+% \hss
+% \usebox0
+% \hss
+% \kern-\rightmargin\relax
+% }^^A
+% }^^A
+% \ifdim\wd0>\lw
+% \sbox0{\small\t}^^A
+% \ifdim\wd0>\linewidth
+% \ifdim\wd0>\lw
+% \sbox0{\footnotesize\t}^^A
+% \ifdim\wd0>\linewidth
+% \ifdim\wd0>\lw
+% \sbox0{\scriptsize\t}^^A
+% \ifdim\wd0>\linewidth
+% \ifdim\wd0>\lw
+% \sbox0{\tiny\t}^^A
+% \ifdim\wd0>\linewidth
+% \lwbox
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip{}'s
+% \xfile{TDS} installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip{}.
+%
+% \subsection{Refresh file name databases}
+%
+% If your \TeX{}~distribution (\teTeX{}, \mikTeX{},\dots{}) relies on file name
+% databases, you must refresh these. For example, \teTeX{} users run
+% \verb|texhash| or \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Unpacking with \LaTeX{}.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip{} and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX{} for \docstrip{} (really,
+% \docstrip{} does not need \LaTeX{}), then inform the autodetect routine
+% about your intention:
+% \begin{quote}
+% \verb|latex \let\install=y\input{undolabl.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.\label{GenDoc}}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by a
+% configuration file \xfile{ltxdoc.cfg}. For instance, put the following
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+%
+% \noindent An example follows how to generate the
+% documentation with \pdfLaTeX{}:
+%
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex undolabl.dtx
+%makeindex -s gind.ist undolabl.idx
+%pdflatex undolabl.dtx
+%makeindex -s gind.ist undolabl.idx
+%pdflatex undolabl.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \section{Acknowledgements}
+%
+% The main code of this package was invented by \\
+% \textbf{ULRICH DIEZ} (\texttt{eu\_angelion@web.de})\\
+% and first published in the \Newsgroup{comp.text.tex} newsgroup at\\
+% \texttt{Sun,~20~Apr~2008~16:39:26~+0200}, with subject:\\
+% \texttt{Re:~How~to~undefine/overwrite~a~label?} (see e.\,g.
+% \url{http://groups.google.de/group/comp.text.tex/msg/5ba8d4722e5cd326?dmode=source}
+% as well as \linebreak
+% \url{http://groups.google.de/group/comp.text.tex/msg/af6cfe93917097da?dmode=source}).\\
+% I (\textsc{H.-Martin M\"{u}nch}) would like to thank \textbf{ULRICH DIEZ}
+% for this as well as for his permission to publish it on CTAN as well as
+% for his bug reports.
+% I also thank those anonymous people who had published the package somewhere else
+% on the internet, where I found it first.
+% Further I would like to thank \textsc{Rainer Wintermute} for explaining the
+% |\CheckSum|, \textsc{Heiko Oberdiek} for providing a~lot~(!) of useful packages
+% (from which I also got everything I know about creating a file in \xfile{dtx} format,
+% OK, say it: copying), \textsc{Robin Fairbairns} and everybody of the CTAN team
+% for managing CTAN, and the \Newsgroup{comp.text.tex} and \Newsgroup{de.comp.text.tex}
+% newsgroups for their help in all things \TeX{}.
+%
+% \pagebreak
+%
+% \phantomsection
+% \begin{History}\label{History}
+%
+% Some old versions have been archived at\\
+% \url{http://ctanhg.scharrer-online.de/pkg/undolabl.html}.
+%
+% \begin{Version}{2008/04/20 v0.3(a)}
+% \item created by \textbf{ULRICH DIEZ}
+% \end{Version}
+% \begin{Version}{2010/04/08 v0.3b}
+% \item \xfile{.dtx} updated by \textsc{H.-Martin M\"{u}nch},
+% submitted to CTAN (no changes in the style code).
+% \end{Version}
+% \begin{Version}{2010/06/01 v1.0(a)}
+% \item \xfile{.dtx} updated: some minor corrections in the documentation,
+% an internal renaming for possible better compatibility with other packages.
+% \item The main code of this package was invented in 2008 by \textbf{ULRICH DIEZ}
+% (\texttt{eu\_angelion@web.de}) and published on the internet.
+% Because \textbf{ULRICH DIEZ} neither wanted to create a package himself yet
+% nor have one published under his name,
+% but granted the publication of his code (Thanks!),
+% I had to change author/maintainer of this package and resubmit it.
+% \end{Version}
+% \begin{Version}{2010/06/03 v1.0b}
+% \item Found an unchanged reference to the package author/maintainer.
+% \item Example adapted to other examples of mine.
+% \item Updated references to other packages.
+% \item \xfile{TDS} locations updated.
+% \item Several changes in the documentation and the \texttt{README} file.
+% \end{Version}
+% \begin{Version}{2010/06/24 v1.0c}
+% \item \xpackage{holtxdoc} warning in \xfile{drv} updated.
+% \item Corrected the location of the package at CTAN. (\xfile{TDS} of
+% this version was still missing due to a~packaging error.)
+% \item Updated references to other packages: \xpackage{hyperref} and
+% \xpackage{pagesLTS} (which has been renamed to \xpackage{pageslts}
+% and is no longer referenced since v1.0h).
+% \end{Version}
+% \begin{Version}{2010/07/15 v1.0d}
+% \item There was another update by \textbf{ULRICH DIEZ} on
+% \Newsgroup{comp.text.tex} at
+% \texttt{Mon,~21~Apr~2008~23:04:03~+0200}, see e.\,g.\\
+% \url{http://groups.google.de/group/comp.text.tex/msg/af6cfe93917097da?dmode=source},
+% which now has been included in this package.
+% \item Put more emphasis on \textbf{ULRICH DIEZ} writing the initial code.
+% \item Updated references to other packages and corrected the given location
+% of the \textsf{undolabl.tds.zip} file at CTAN.org.
+% \end{Version}
+% \begin{Version}{2010/07/25 v1.0e}
+% \item Bugs reported by \textbf{ULRICH DIEZ} on \Newsgroup{comp.text.tex} at\\
+% \texttt{Sat,~17~Jul~2010~12:27:10~+0200},
+% subject \texttt{Re:~CTAN~Update:~undolabl}, see e.\,g.
+% \url{http://groups.google.com/group/comp.text.tex/msg/d366821ce4f8b62e?dmode=source},
+% eradicated.
+% \item |\StopEventually| added and |\CheckSum| value corrected (was~$0$).
+% \item Minor details.
+% \end{Version}
+% \begin{Version}{2010/07/29 v1.0f}
+% \item Corrected diverse urls, updated references to other packages.
+% \end{Version}
+% \begin{Version}{2010/09/12 v1.0g}
+% \item There was a wrong \texttt{\%} behind \texttt{2010/07/29 v1.0f},
+% resulting in the version being displayed as
+% \textquotedblleft \texttt{v1.0fOverriding}\textquotedblright.
+% \item Changed the |\unit| definition (got rid of an old |\rm|).
+% \item A lot of small changes.
+% \end{Version}
+% \begin{Version}{2011/02/01 v1.0h}
+% \item Updated to new version of the \xpackage{hyperref} package.
+% \item Removed |/muench/| from the path at diverse locations.
+% \item Some small changes.
+% \end{Version}
+% \begin{Version}{2011/06/26 v1.0i}
+% \item The \xpackage{holtxdoc} package was fixed (recent: 2011/02/04, v0.21),
+% therefore the warning in \xfile{drv} could be removed.~--
+% Adapted the style of this documentation to new \textsc{Oberdiek}
+% \xfile{dtx} style.
+% \item There is a new version of the used \xpackage{hyperref} package.
+% \item Quite some changes in the \xfile{.dtx}/documentation.
+% \end{Version}
+% \begin{Version}{2011/08/08 v1.0j}
+% \item The \xpackage{pagesLTS} package has been renamed to
+% \xpackage{pageslts}: 2011/08/08,~v1.2a.
+% \item Some minor changes.
+% \end{Version}
+% \begin{Version}{2012/01/01 v1.0k}
+% \item Bugfix: Obsolete installation path given in the documentation, updated.
+% \item Bugfix: A section was broken in the documentation (text had been lost
+% but was recovered now).
+% \item Update of documentation, README, and \xfile{dtx} internals.
+% \end{Version}
+% \begin{Version}{2015/03/29 v1.0l}
+% \item Incompatibility with \textsf{acronym} package fixed --
+% by \textsf{acronym} package, thanks! Check for older versions introduced.
+% \item Introduced a check, whether writing to the \xfile{aux} file is allowed.
+% \item Update of documentation, README, and \xfile{dtx} internals.
+% \end{Version}
+% \end{History}
+%
+% \bigskip
+%
+% \noindent When you find a mistake or have a suggestion for an improvement of this package,
+% please send an e-mail to the maintainer, thanks! (Please see BUG REPORTS in the README.)
+%
+% \bigskip
+%
+% \PrintIndex
+%
+% \Finale
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/undolabl/undolabl.pdf b/macros/latex/contrib/undolabl/undolabl.pdf
new file mode 100644
index 0000000000..e9d8033722
--- /dev/null
+++ b/macros/latex/contrib/undolabl/undolabl.pdf
Binary files differ