From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/labels4easylist/README | 10 +++ .../contrib/labels4easylist/labels4easylist.pdf | Bin 0 -> 24595 bytes .../contrib/labels4easylist/labels4easylist.sty | 90 ++++++++++++++++++++ .../contrib/labels4easylist/labels4easylist.tex | 91 +++++++++++++++++++++ 4 files changed, 191 insertions(+) create mode 100644 macros/latex/contrib/labels4easylist/README create mode 100644 macros/latex/contrib/labels4easylist/labels4easylist.pdf create mode 100644 macros/latex/contrib/labels4easylist/labels4easylist.sty create mode 100644 macros/latex/contrib/labels4easylist/labels4easylist.tex (limited to 'macros/latex/contrib/labels4easylist') 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 + +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 Binary files /dev/null and b/macros/latex/contrib/labels4easylist/labels4easylist.pdf 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 +% +% 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 +% +% 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 } +\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} -- cgit v1.2.3