summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/labels4easylist
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/labels4easylist
Initial commit
Diffstat (limited to 'macros/latex/contrib/labels4easylist')
-rw-r--r--macros/latex/contrib/labels4easylist/README10
-rw-r--r--macros/latex/contrib/labels4easylist/labels4easylist.pdfbin0 -> 24595 bytes
-rw-r--r--macros/latex/contrib/labels4easylist/labels4easylist.sty90
-rw-r--r--macros/latex/contrib/labels4easylist/labels4easylist.tex91
4 files changed, 191 insertions, 0 deletions
diff --git a/macros/latex/contrib/labels4easylist/README b/macros/latex/contrib/labels4easylist/README
new file mode 100644
index 0000000000..45ce70e900
--- /dev/null
+++ b/macros/latex/contrib/labels4easylist/README
@@ -0,0 +1,10 @@
+Package labels4easylist provide \itemLabel macro for adding configurable
+reference labels to easylist items. Macro requires one argument - label
+identifier (using in \ref for references to label).
+
+Version 1.0 (2019-05-13): first public release
+
+
+Copyright (C) 2015-2019, Robert Ryszard Paciorek <rrp@opcode.eu.org>
+
+This is free software distributed under terms of The MIT License.
diff --git a/macros/latex/contrib/labels4easylist/labels4easylist.pdf b/macros/latex/contrib/labels4easylist/labels4easylist.pdf
new file mode 100644
index 0000000000..045c9693fb
--- /dev/null
+++ b/macros/latex/contrib/labels4easylist/labels4easylist.pdf
Binary files differ
diff --git a/macros/latex/contrib/labels4easylist/labels4easylist.sty b/macros/latex/contrib/labels4easylist/labels4easylist.sty
new file mode 100644
index 0000000000..01c3a7daf7
--- /dev/null
+++ b/macros/latex/contrib/labels4easylist/labels4easylist.sty
@@ -0,0 +1,90 @@
+% Copyright (c) 2015-2019 Robert Ryszard Paciorek <rrp@opcode.eu.org>
+%
+% MIT License
+%
+% Permission is hereby granted, free of charge, to any person obtaining a copy
+% of this software and associated documentation files (the "Software"), to deal
+% in the Software without restriction, including without limitation the rights
+% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the Software is
+% furnished to do so, subject to the following conditions:
+%
+% The above copyright notice and this permission notice shall be included in all
+% copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+% SOFTWARE.
+
+% Version 1.0 (2019-05-13): first public release
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{labels4easylist}
+
+\RequirePackage{xparse}
+\RequirePackageWithOptions{easylist}
+
+%
+% configurable refernece labels for easylist items
+%
+
+% add label to item entry, usage:
+% \itemLabel{LabelName}[skipA][skibB]
+% skipA - number of level to skip at front
+% skipB - number of level to skip at end
+\DeclareDocumentCommand{\itemLabel}{ m O{0} o } {%
+ % prepare ref-label text in \elLabel@currRefLabel
+ \xdef\elLabel@currRefLabel{}{%
+ \elLabel@currLevel=1%
+ \elLabel@minLevel=#2%
+ \elLabel@maxLevel=\el@PreviousItem%
+ \IfValueTF{#3}{\advance\elLabel@maxLevel by -#3}{\elLabel@GetLastLevel}%
+ \elLabel@RecurencyGetEnumLevel%
+ }%
+ % create ref-label with id from #1 and text from \elLabel@currRefLabel
+ \let\@currentlabel\elLabel@currentlabel%
+ \def\@currentlabel{\elLabel@currRefLabel}%
+ \label{#1}%
+ \let\elLabel@currentlabel\@currentlabel%
+}
+
+% counters
+\newcount\elLabel@currLevel
+\newcount\elLabel@minLevel
+\newcount\elLabel@maxLevel
+
+% recursive skip final unused levels and not enumerate levels
+\newcommand{\elLabel@GetLastLevel} {
+ \ifnum\elLabel@maxLevel>\elLabel@minLevel%
+ \ifnum\elLabel@maxLevel=\csname Hide\the\elLabel@maxLevel\endcsname
+ \advance\elLabel@maxLevel by -1
+ \elLabel@GetLastLevel
+ \else%
+ \ifnum\value{List\the\elLabel@maxLevel}=0
+ \advance\elLabel@maxLevel by -1
+ \elLabel@GetLastLevel
+ \fi%
+ \fi%
+ \fi%
+}
+
+% recursive build label text for reference
+\newcommand{\elLabel@RecurencyGetEnumLevel} {%
+ % if (minLev < currLev AND currLev <= maxLev AND value !=0)
+ \ifnum\elLabel@currLevel>\elLabel@minLevel \ifnum\elLabel@currLevel>\elLabel@maxLevel\else \ifnum\value{List\the\elLabel@currLevel}=0\else%
+ \xdef\elLabel@currRefLabel{\elLabel@currRefLabel%
+ \csname el@NumberDenotation:\csname Numbers\the\elLabel@currLevel\endcsname\endcsname{List\the\elLabel@currLevel}%
+ \ifnum\elLabel@currLevel<\elLabel@maxLevel \csname Mark\the\elLabel@currLevel\endcsname \fi%
+ }%
+ \fi\fi\fi%
+ % recursion:
+ \ifnum\elLabel@currLevel<\elLabel@maxLevel
+ \advance\elLabel@currLevel by 1
+ \elLabel@RecurencyGetEnumLevel
+ \fi%
+}
diff --git a/macros/latex/contrib/labels4easylist/labels4easylist.tex b/macros/latex/contrib/labels4easylist/labels4easylist.tex
new file mode 100644
index 0000000000..2624de02e1
--- /dev/null
+++ b/macros/latex/contrib/labels4easylist/labels4easylist.tex
@@ -0,0 +1,91 @@
+% Copyright (c) 2015-2019 Robert Ryszard Paciorek <rrp@opcode.eu.org>
+%
+% MIT License
+%
+% Permission is hereby granted, free of charge, to any person obtaining a copy
+% of this software and associated documentation files (the "Software"), to deal
+% in the Software without restriction, including without limitation the rights
+% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the Software is
+% furnished to do so, subject to the following conditions:
+%
+% The above copyright notice and this permission notice shall be included in all
+% copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+% SOFTWARE.
+
+\documentclass[a4paper]{article}
+\usepackage[ampersand]{labels4easylist}
+
+\begin{document}
+
+\title{The \texttt{labels4easylist} package}
+\author{Robert Ryszard Paciorek <rrp@opcode.eu.org>}
+\date{2019-05-13}
+\maketitle
+
+\section{Introduction}
+
+This packgage provide \verb#\itemLabel# macro for adding configurable reference labels to easylist items.
+Macro requires one argument - label identifier (using in \verb#\ref# for references to label).
+Macro accepts two optional argument - number of easylist hierarchy levels to omission in label text.
+
+\section{Example}
+
+\begin{easylist}
+\NewList(
+ % separator pomiędzy numerami oraz separatory końcowe
+ Mark=.,FinalMark=.,
+ % ustawienie odstępów między punktami
+ Space=0.5em,Space*=0.5em,
+ % ustawienia wcięć
+ Hang=true,Align=move,FinalSpace=0.5em,Progressive*=3ex,Margin1=1ex,
+ Numbers5=l,Hide5=4,FinalMark5={)},Margin5=12ex,
+ Hide6=6,Style6*=-- ,Margin6=15ex,
+)
+\ListProperties(Start1=2)
+& aaa aaa \label{A1} x\itemLabel{A2}x
+&& bbb bbb \label{B1} x\itemLabel{B2}x
+\ListProperties(Start3=5)
+&&&& ddd ddd \label{C1} \itemLabel{C2} x\itemLabel{C3}[2]x x\itemLabel{C4}[0][2]x
+&&&&& eee eee \label{D1} \itemLabel{D2} x\itemLabel{D3}[4]x
+\end{easylist}
+
+\vspace{0.5cm}
+
+\begin{tabular}{ p{2.5cm} p{2.5cm} p{4.5cm} }
+standard \textbackslash{}label &
+\textbackslash{}itemLabel &
+\textbackslash{}itemLabel with extra args \\
+
+\ref{A1} & \ref{A2} & \\
+\ref{B1} & \ref{B2} & \\
+\ref{C1} & \ref{C2} & \ref{C3} in \ref{C4}\\
+\ref{D1} & \ref{D2} & \ref{D3}
+\end{tabular}
+
+\subsection{easylist code}
+\begin{verbatim}
+\ListProperties(Start1=2)
+& aaa aaa \label{A1} x\itemLabel{A2}x
+&& bbb bbb \label{B1} x\itemLabel{B2}x
+\ListProperties(Start3=5)
+&&&& ddd ddd \label{C1} \itemLabel{C2} x\itemLabel{C3}[2]x x\itemLabel{C4}[0][2]x
+&&&&& eee eee \label{D1} \itemLabel{D2} x\itemLabel{D3}[4]x
+\end{verbatim}
+
+\subsection{table code}
+\begin{verbatim}
+\ref{A1} & \ref{A2} & \\
+\ref{B1} & \ref{B2} & \\
+\ref{C1} & \ref{C2} & \ref{C3} in \ref{C4}\\
+\ref{D1} & \ref{D2} & \ref{D3}
+\end{verbatim}
+
+\end{document}