summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/listlbls
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/listlbls
Initial commit
Diffstat (limited to 'macros/latex/contrib/listlbls')
-rw-r--r--macros/latex/contrib/listlbls/Makefile48
-rw-r--r--macros/latex/contrib/listlbls/README17
-rw-r--r--macros/latex/contrib/listlbls/listlbls.dtx471
-rw-r--r--macros/latex/contrib/listlbls/listlbls.pdfbin0 -> 74422 bytes
4 files changed, 536 insertions, 0 deletions
diff --git a/macros/latex/contrib/listlbls/Makefile b/macros/latex/contrib/listlbls/Makefile
new file mode 100644
index 0000000000..20ecc6f468
--- /dev/null
+++ b/macros/latex/contrib/listlbls/Makefile
@@ -0,0 +1,48 @@
+NAME = listlbls
+SHELL = bash
+PWD = $(shell pwd)
+TEMP := $(shell mktemp -d)
+TDIR = $(TEMP)/$(NAME)
+VERS = $(shell ltxfileinfo -v $(NAME).dtx)
+LOCAL = $(shell kpsewhich --var-value TEXMFLOCAL)
+UTREE = $(shell kpsewhich --var-value TEXMFHOME)
+
+all: $(NAME).pdf README.md README clean
+
+README: README.txt
+ cp README.txt README
+
+README.txt: $(NAME).pdf
+
+README.md: $(NAME).pdf
+
+$(NAME).pdf: $(NAME).dtx
+ xelatex -shell-escape -recorder -interaction=batchmode $(NAME).dtx >/dev/null
+ if [ -f $(NAME).glo ]; then makeindex -q -s gglo.ist -o $(NAME).gls $(NAME).glo; fi
+ if [ -f $(NAME).idx ]; then makeindex -q -s gind.ist -o $(NAME).ind $(NAME).idx; fi
+ xelatex -shell-escape -recorder -interaction=nonstopmode $(NAME).dtx > /dev/null
+ xelatex -shell-escape -recorder -interaction=nonstopmode $(NAME).dtx > /dev/null
+
+clean:
+ rm -f *.fls
+ rm -f $(NAME).{aux,toc,fls,glo,gls,hd,idx,ilg,ind,ins,log,out}
+
+distclean: clean
+ rm -f $(NAME).{pdf,sty} README{,.{md,txt}}
+
+inst: all
+ mkdir -p $(UTREE)/{tex,source,doc}/latex/$(NAME)
+ cp $(NAME).dtx $(UTREE)/source/latex/$(NAME)
+ cp $(NAME).sty $(UTREE)/tex/latex/$(NAME)
+ cp $(NAME).pdf $(UTREE)/doc/latex/$(NAME)
+
+install: all
+ sudo mkdir -p $(LOCAL)/{tex,source,doc}/latex/$(NAME)
+ sudo cp $(NAME).dtx $(LOCAL)/source/latex/$(NAME)
+ sudo cp $(NAME).sty $(LOCAL)/tex/latex/$(NAME)
+ sudo cp $(NAME).pdf $(LOCAL)/doc/latex/$(NAME)
+
+zip: all
+ mkdir $(TDIR)
+ cp $(NAME).{pdf,dtx} Makefile README $(TDIR)
+ cd $(TEMP); zip -Drq $(PWD)/$(NAME)-$(VERS).zip $(NAME)
diff --git a/macros/latex/contrib/listlbls/README b/macros/latex/contrib/listlbls/README
new file mode 100644
index 0000000000..c8a71fe79b
--- /dev/null
+++ b/macros/latex/contrib/listlbls/README
@@ -0,0 +1,17 @@
+----------------------------------------------------------------
+listlbls --- Creates a list of all labels used throughout a document
+Author: Norbert Melzer
+E-mail: timmelzer@gmail.com
+License: Released under the LaTeX Project Public License v1.3c or later
+See: http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+This is a package meant to help a LaTeX-writer to keep track all the defined
+labels by typesetting a complete list of labels whereever the author requests
+it. Keep in mind, that you might need to have additional LaTeX runs to get the
+references right.
+
+This package is based on an answer David Carlisle gave on tex.stackexchange.com
+in the thread ``List of all labels with hyperlinks''[1].
+
+[1]: http://tex.stackexchange.com/questions/147695/list-of-all-labels-with-hyperlinks/147705#147705
diff --git a/macros/latex/contrib/listlbls/listlbls.dtx b/macros/latex/contrib/listlbls/listlbls.dtx
new file mode 100644
index 0000000000..52da33c381
--- /dev/null
+++ b/macros/latex/contrib/listlbls/listlbls.dtx
@@ -0,0 +1,471 @@
+% \iffalse meta-comment
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+----------------------------------------------------------------
+listlbls --- Creates a list of all labels used throughout a document
+Author: Norbert Melzer
+E-mail: timmelzer@gmail.com
+License: Released under the LaTeX Project Public License v1.3c or later
+See: http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+This is a package meant to help a LaTeX-writer to keep track all the defined
+labels by typesetting a complete list of labels whereever the author requests
+it. Keep in mind, that you might need to have additional LaTeX runs to get the
+references right.
+
+This package is based on an answer David Carlisle gave on tex.stackexchange.com
+in the thread ``List of all labels with hyperlinks''[1].
+
+[1]: http://tex.stackexchange.com/questions/147695/list-of-all-labels-with-hyperlinks/147705#147705
+%</readme>
+%<*readmemd>
+listlbls
+========
+
+Creates a list of all labels used throughout a document
+
+| Key | Value |
+|--------:|:---------------------------------------------------------------|
+| Author | Norbert Melzer |
+| E-mail | timmelzer@gmail.com |
+| License | Released under the LaTeX Project Public License v1.3c or later |
+| See | http://www.latex-project.org/lppl.txt |
+
+This is a package meant to help a LaTeX-writer to keep track all the defined
+labels by typesetting a complete list of labels whereever the author requests
+it. Keep in mind, that you might need to have additional LaTeX runs to get the
+references right.
+
+This package is based on an answer David Carlisle gave on tex.stackexchange.com
+in the thread [List of all labels with hyperlinks][1].
+
+[1]: http://tex.stackexchange.com/questions/147695/list-of-all-labels-with-hyperlinks/147705#147705
+%</readmemd>
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%<*install>
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+----------------------------------------------------------------
+listlbls --- Creates a list of all labels used throughout a document
+Author: Norbert Melzer
+E-mail: timmelzer@gmail.com
+License: Released under the LaTeX Project Public License v1.3c or later
+See: http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+\endpreamble
+\postamble
+
+Copyright (C) 2014 by Norbert Melzer <timmelzer@gmail.com>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License (LPPL), either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in the file:
+
+http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+Norbert Melzer.
+
+This work consists of the file listlbls.dtx and a Makefile.
+Running "make" generates the derived files README, listlbls.pdf and listlbls.sty.
+Running "make inst" installs the files in the user's TeX tree.
+Running "make install" installs the files in the local TeX tree.
+
+\endpostamble
+
+\usedir{tex/latex/listlbls}
+\generate{
+ \file{\jobname.sty}{\from{\jobname.dtx}{package}}
+}
+%</install>
+%<install>\endbatchfile
+%<*internal>
+\usedir{source/latex/listlbls}
+\generate{
+ \file{\jobname.ins}{\from{\jobname.dtx}{install}}
+}
+\nopreamble\nopostamble
+\usedir{doc/latex/listlbls}
+\generate{
+ \file{README.txt}{\from{\jobname.dtx}{readme}}
+}
+\generate{
+ \file{README.md}{\from{\jobname.dtx}{readmemd}}
+}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</internal>
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{listlbls.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{listlbls}
+%<*package>
+ [2014/08/04 v1.03 Creates a list of all labels used throughout a document]
+%</package>
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{microtype}
+\usepackage{libertine}
+\usepackage[a4paper,margin=25mm,left=50mm,nohead]{geometry}
+\usepackage{colordoc}
+\usepackage{multicol}
+\usepackage{dox}
+\doxitem{Option}{option}{option}
+\usepackage[numbered]{hypdoc}
+\usepackage{xspace}
+\usepackage{nameref}
+\usepackage[english]{babel}
+\usepackage[draft,totoc]{listlbls}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\newcommand\TSE{\href{http://tex.stackexchange.com/}{\TeX-Stackexchange}\xspace}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{\jobname.dtx}
+% \DoNotIndex{\newcommand,\newenvironment,\def,\detokenize,\dotfill,\else,\endinput,\expandafter,\fi,\ifeof,\ifx,\immediate,\jobname,\par,\pageref,\openin,\noindent,\newtoks,\newread,\newlabel,\loop,\long,\read,\ref,\relax,\repeat,\texttt,\the,\tmp,\zz,\ProcessOptions,\let,\ifdefined,\DeclareOption,\addcontentsline,\chapter,\DeclareTranslation,\DeclareTranslationFallback,\GetTranslation,\newif,\RequirePackage,\section,\`,\ยด,\'}
+%
+%\title{\textsf{listlbls} --- Creates a list of all labels used throughout a document\thanks{This file
+% describes version \fileversion, last revised \filedate.}
+%}
+%\author{Norbert Melzer\thanks{E-mail: \href{mailto:timmelzer@gmail.com}{timmelzer@gmail.com}}}
+%\date{Released \filedate}
+%
+%\maketitle
+%
+%\changes{v1.00}{2014/07/25}{First public release}
+%\changes{v1.01}{2014/07/25}{Changed maintainer email}
+%\changes{v1.01}{2014/07/25}{Changed some internal stuff to make it releaseable on CTAN}
+%\changes{v1.02}{2014/07/26}{Local option wins agains global option}
+%\changes{v1.02}{2014/07/27}{Added languag-support for English, German and French.}
+%\changes{v1.03}{2014/08/04}{Proceeding with namespacing internal macros}
+% \begin{abstract}
+% This is a package meant to help a \LaTeX-writer to keep track all the defined labels by typesetting a complete list of labels whereever the author requests it. Keep in mind, that you might need to have additional \LaTeX\ runs to get the references right.
+%
+% This package is based on an answer \textsc{David Carlisle}\ gave on \TSE in the thread \href{http://tex.stackexchange.com/questions/147695/list-of-all-labels-with-hyperlinks/147705#147705}{List of all labels with hyperlinks}.
+% \end{abstract}
+%
+% \begin{multicols}{2}
+% \tableofcontents
+% \end{multicols}
+% \section{Installation}\label{sec:install}
+%
+% The following explanations are only valid for Linux-like systems with gnu-|make| available.
+%
+% \subsection{\TeX live}\label{ssec:inst-tl}
+%
+% This package is bundled in \TeX live, so you can simply (|sudo|) |tlmgr install listlbls| (which should work for windows as well)
+%
+% \subsection{From Github}\label{ssec:inst-gh}
+%
+% \begin{enumerate}
+% \item Check out the sourcecode from \href{https://github.com/}{GitHub}:\\
+% |git clone git@github.com:NobbZ/listlbls.git|
+% \item Switch to the source-folder:\\|cd listlbls|
+% \item Checkout the branch/tag you desire: |master| for latest release, |develop| for latest builds (might be broken) or the version number desired.\\
+% |git checkout <branch/tag>|
+% \item Compile the document using |make|:\\
+% |make all|
+% \item You can do either a user-installation or a system-wide installation:
+% \begin{description}
+% \item[user:] |make inst|
+% \item[system:] |make install| (will ask for root!)
+% \end{description}
+% \end{enumerate}
+%
+% \subsection{From CTAN}\label{ssec:inst-ctan}
+%
+% \begin{enumerate}
+% \item Browse to \url{http://ctan.org/pkg/listlbls}.
+% \item Download the package as zip archive (``Download'' at the bottom of the page).\\
+% |wget http://mirrors.ctan.org/macros/latex/contrib/listlbls.zip|
+% \item Unzip wherever you want. \\
+% |unzip listlbls.zip|
+% \item |cd| into the directory you unzipped to. \\
+% |cd listlbls|
+% \item You can do either a user-installation or a system-wide installation:
+% \begin{description}
+% \item[user:] |make inst|
+% \item[system:] |make install| (will ask for root!)
+% \end{description}
+% \end{enumerate}
+%
+% \section{Usage}\label{sec:usage}
+%
+% \subsection{Initialization}\label{ssec:use-init}
+%
+% Just activate the package as usual: |\usepackage|\oarg{options}|{listlbls}|
+%
+% \DescribeOption{draft} If |draft| is given as option, |\listoflabels| will typeset the list of labels.
+%
+% \DescribeOption{final} If |final| is given as option, |\listoflabels| will do nothing. Please remember, that |final| is set globally by most documentclasses.
+%
+% \DescribeOption{totoc} If this is given the List of Labels will appear in a table of contents (unnumbered).
+%
+% \DescribeOption{notoc} If this is given the List of Labels will \emph{not} appear in a table of contents, but it will still have a headline.
+%
+% \DescribeOption{numtoc} Typesets a numbered headline, this option also implies |totoc|!
+%
+% \DescribeOption{nonameref} Even if the package |nameref| if detected, it will not be used.
+%
+% This document was typeset with |\usepackage[draft,totoc]{listlbls}| also the package |nameref| was loaded.
+%
+% A locally set option will win against a globally set contrary option!
+%
+% \subsection{Macros}\label{ssec:use-macros}
+%
+% Then anywhere in your document, you can use the |\listoflabels|-macro to typeset a list of labels. An example can be seen on page \pageref{special:listoflabels}.
+%
+% \DescribeMacro{\label} Use |\label| as you are used to it!
+%
+% \DescribeMacro{\listoflabels} This macro will typeset the list of labels when this module is in draft mode. It will itself register the label ``|special:listoflabels|''.
+%
+%\StopEventually{^^A
+% \PrintChanges
+%
+% \PrintIndex
+%
+% \listoflabels
+%}
+%
+% \section{Contribution and bugreports}\label{sec:contribute}
+%
+% If you have feature-requests or bug-reports, please feel free to report them on the \href{https://github.com/NobbZ/listlbls}{project page at GitHub}.
+%
+% If you want to contribute then follow these steps:
+% \begin{enumerate}
+% \item Visit the \href{https://github.com/NobbZ/listlbls}{project page at GitHub},
+% \item forkt it,
+% \item clone it to your local machine,
+% \item create a branch ``|feature/|\meta{feature name}'',
+% \item do your changes,
+% \item push them back to GitHub,
+% \item create a pull request to |develop|,
+% \item and wait for approval.
+% \end{enumerate}
+% After approval your code will be merged to the |development|-branch and I will generally not accept pull-requests that edit |develop| directly.
+% \section{Implementation}\label{sec:implementation}
+%
+% \begin{macrocode}
+%<*package>
+\newif\ifllbls@draft\llbls@draftfalse
+\newif\ifllbls@totoc\llbls@totocfalse
+\newif\ifllbls@numtoc\llbls@numtocfalse
+\newif\ifllbls@nameref\llbls@namereftrue
+% \end{macrocode}
+% \subsection{Options}\label{ssec:impl-options}
+% \begin{option}{draft}
+% \changes{v1.01}{2014/07/25}{Added option}
+% \changes{v1.02}{2014/07/26}{Introduced @ifdraft}
+% Check for |draft|-option:
+% \begin{macrocode}
+\DeclareOption{draft}{\llbls@drafttrue}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{final}
+% \changes{v1.01}{2014/07/25}{Added option}
+% \changes{v1.02}{2014/07/26}{Introduced @ifdraft}
+% Check for |final|-option:
+% \begin{macrocode}
+\DeclareOption{final}{\llbls@draftfalse}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{totoc}
+% \changes{v1.02}{2014/07/26}{Added option}
+% Check for |totoc|-option:
+% \begin{macrocode}
+\DeclareOption{totoc}{\llbls@totoctrue}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{notoc}
+% \changes{v1.02}{2014/07/26}{Added option}
+% Check for |notoc|-option:
+% \begin{macrocode}
+\DeclareOption{notoc}{\llbls@totocfalse}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{numtoc}
+% \changes{v1.02}{2014/07/27}{Added option}
+% Check for |numtoc|-option:
+% \begin{macrocode}
+\DeclareOption{numtoc}{\llbls@numtoctrue}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{nonameref}
+% \changes{v1.03}{2014/08/04}{Added option}
+% Check for |nonameref|-option:
+% \begin{macrocode}
+\DeclareOption{nonameref}{\llbls@namereffalse}
+% \end{macrocode}
+% \end{option}
+% Process the options:
+% \begin{macrocode}
+\ProcessOptions*\relax
+% \end{macrocode}
+% \subsection{Loading auxilliary packages}\label{ssec:impl-aux}
+% Load the package |translations| to provide internationalised caption for the\\|\listoflabels|.
+% \begin{macrocode}
+\RequirePackage{translations}
+% \end{macrocode}
+% \subsection{Set up internationalisation}\label{ssec:impl-i18n}
+% Define fallback translations:
+% \begin{macrocode}
+\DeclareTranslationFallback%
+ {llbls-listoflabels}%
+ {List of Labels}
+\DeclareTranslationFallback%
+ {llbls-onpage}%
+ {on page}
+% \end{macrocode}
+% \subsubsection{English}\label{sssec:impl-i18n-en}
+% \begin{macrocode}
+\DeclareTranslation{English}%
+ {llbls-listoflabels}%
+ {List of Labels}
+\DeclareTranslation{English}%
+ {llbls-onpage}%
+ {on page}
+% \end{macrocode}
+% \subsubsection{German}\label{sssec:impl-i18n-de}
+% \begin{macrocode}
+\DeclareTranslation{German}%
+ {llbls-listoflabels}%
+ {Sprungmarkenverzeichnis}
+\DeclareTranslation{German}%
+ {llbls-onpage}%
+ {auf Seite}
+% \end{macrocode}
+% \subsubsection{French}\label{sssec:impl-i18n-fr}
+% \begin{macrocode}
+\DeclareTranslation{French}%
+ {llbls-listoflabels}%
+ {Liste des \'etiquettes}
+\DeclareTranslation{French}%
+ {llbls-onpage}%
+ {\`a la page}
+% \end{macrocode}
+% \subsection{Internal stuff}\label{ssec:impl-internal}
+% \begin{macro}{\llbls@headline}\begin{macro}{\llbls@toccommand}\begin{macro}{\llbls@tocgroup}
+% Determine if we have |\chapter|s or not and create a command that maps to |\chapter| or |\section| as needed.
+% \begin{macrocode}
+\ifdefined\chapter*
+ \ifllbls@numtoc
+ \def\llbls@headline{%
+ \chapter{List of Labels}\label{special:listoflabels}}
+ \else
+ \def\llbls@toccommand{\chapter*}
+ \def\llbls@tocgroup{chapter}
+ \fi
+\else
+ \ifllbls@numtoc
+ \def\llbls@headline{%
+ \section{List of Labels}\label{special:listoflabels}}
+ \else
+ \def\llbls@toccommand{\section*}
+ \def\llbls@tocgroup{section}
+ \fi
+\fi
+\ifdefined\llbls@headline\else
+ \def\llbls@headline{%
+ \llbls@toccommand{\GetTranslation{llbls-listoflabels}}%
+ \label{special:listoflabels}%
+ \ifllbls@totoc%
+ \addcontentsline{toc}%
+ {\llbls@tocgroup}%
+ {\GetTranslation{llbls-listoflabels}}%
+ \relax%
+ \fi%
+ }
+\fi
+% \end{macrocode}
+% \end{macro}\end{macro}\end{macro}
+% \begin{macro}{\llbls@refs}
+% Whether or not we use |\nameref| in the output.
+% \begin{macrocode}
+\ifdefined\nameref
+ \ifllbls@nameref
+ \newcommand\llbls@refs[1]{\nameref{#1}, \ref{#1}}
+ \else
+ \newcommand\llbls@refs[1]{\ref{#1}}
+ \fi
+\else
+ \newcommand\llbls@refs[1]{\ref{#1}}%
+\fi
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\llbls@findlabel}
+% No explanation yet.
+% \begin{macrocode}
+\long\def\llbls@findlabel#1#2\llbls@findlabel{%
+ \ifx\newlabel#1%
+ \llbls@lablist\expandafter{\the\llbls@lablist\llbls@showlabel#2}
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\llbls@showlabel}
+% \changes{v1.03}{2014/07/27}{Add support for nameref-package}
+% Displays a single entry in the |\listoflabels|
+% \begin{macrocode}
+\def\llbls@showlabel#1#2{%
+ \par\noindent Label: %
+ \texttt{\detokenize{#1}}\dotfill%
+ \llbls@refs{#1}~\GetTranslation{llbls-onpage}~\pageref{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\newtoks\llbls@lablist
+\newread\llbls@zz
+\immediate\openin\llbls@zz=\jobname.aux
+\loop
+\ifeof\llbls@zz\else
+\read\llbls@zz to \llbls@tmp
+\expandafter\llbls@findlabel\llbls@tmp\relax\llbls@findlabel
+\repeat
+% \end{macrocode}
+% \subsection{External stuff}\label{ssec:impl-extern}
+% \begin{macrocode}
+\ifllbls@draft
+% \end{macrocode}
+% \begin{macro}{\listoflabels}
+% Print a list of all available lables that are defined throughout the document.
+% \begin{macrocode}
+ \newcommand\listoflabels{%
+ \llbls@headline%
+ \the\llbls@lablist}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\else
+ \let\listoflabels=\relax
+\fi
+\endinput
+%</package>
+% \end{macrocode}
+%\Finale
diff --git a/macros/latex/contrib/listlbls/listlbls.pdf b/macros/latex/contrib/listlbls/listlbls.pdf
new file mode 100644
index 0000000000..15a732d799
--- /dev/null
+++ b/macros/latex/contrib/listlbls/listlbls.pdf
Binary files differ