From d86e9513f58842b43460cb42d021a2e51fd5730d Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Wed, 1 May 2019 22:51:20 +0000
Subject: poetry (1may19)

git-svn-id: svn://tug.org/texlive/trunk@50921 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/poetry/poetry.sty | 131 ++++++++++++++++----------
 1 file changed, 82 insertions(+), 49 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/poetry/poetry.sty')

diff --git a/Master/texmf-dist/tex/latex/poetry/poetry.sty b/Master/texmf-dist/tex/latex/poetry/poetry.sty
index 5f4c7b03c51..4dfbabeee65 100644
--- a/Master/texmf-dist/tex/latex/poetry/poetry.sty
+++ b/Master/texmf-dist/tex/latex/poetry/poetry.sty
@@ -13,7 +13,7 @@
 %% conditions of that license.  See
 %% http://www.latex-project.org/lppl.txt
 %% for the text of the license.  This document is released
-%% under version 1.3 of that license, and this work may be distributed
+%% under version 1.3c of that license, and this work may be distributed
 %% or modified under the terms of that license or, at your option, any
 %% later version.
 %% 
@@ -26,13 +26,19 @@
 %% derived files poetry.sty and poetry.pdf.
 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{poetry}[2018/09/10 v1.1 support for typesetting poetry]
+\ProvidesPackage{poetry}[2019/05/02 v2.0 support for typesetting poetry]
 
 \ProvidesPackage{poetry}%
+\RequirePackage{modulus}%
 \newcounter{poemline}%
 \newcount\poemlineno%
+\newcounter{poemrtline}%
+\newcount\poemrtlineno%
+\renewcommand\thepoemrtline{}%
 \newcounter{verseline}%
 \newcount\vslineno%
+\newcounter{stanzacount}%
+\newcount\stanzano%
 \newcounter{abspoemno}%
 \newcount\poem@abspoemno%
 \newcounter{poemno}%
@@ -41,6 +47,8 @@
 \newcount\poem@groupno\poem@groupno=0%
 \newcounter{poemlinenumsevery}\setcounter{poemlinenumsevery}{1}%
 \newcount\poem@linenumsevery\poem@linenumsevery=\value{poemlinenumsevery}%
+\newcounter{poemrtlinenumsevery}\setcounter{poemrtlinenumsevery}{1}%
+\newcount\poem@rt@linenumsevery\poem@rt@linenumsevery=\value{poemrtlinenumsevery}%
 \newlength{\poemindent}\setlength{\poemindent}{0pt}%
 \newlength{\poemtopskip}{\setlength{\poemtopskip}{1em}%
 \newlength{\poembotskip}{\setlength{\poembotskip}{1em}%
@@ -48,15 +56,34 @@
 \newdimen\poem@defleftskip\poem@defleftskip=\the\poemindent%
 \newdimen\poem@maxlinewd%
 \newlength{\poemmaxlinewd}\setlength{\poemmaxlinewd}{\textwidth}%
+\newdimen\poem@rt@maxlinewd%
+\newlength{\poemrtmaxlinewd}\setlength{\poemrtmaxlinewd}{\textwidth}%
 \newdimen\poem@hinwd\poem@hinwd=1em%
 \newlength{\poemhinwd}\setlength{\poemhinwd}{1em}%
 \newif\ifpoemlinenums\poemlinenumstrue%
-\newif\ifpoemlinenumright\poemlinenumrightfalse%
+\newif\ifpoemrtlinenums\poemrtlinenumstrue%
+\def\poemlinenumright{%
+\renewcommand{\thepoemrtline}{\arabic{poemline}}%
+\renewcommand{\thepoemline}{}%
+}%
+\def\poemlinenumrighttrue{%
+\renewcommand{\thepoemrtline}{\arabic{poemline}}%
+\renewcommand{\thepoemline}{}%
+}%
+\def\poemlinenumrightfalse{%
+\renewcommand{\thepoemline}{\arabic{poemline}}%
+\renewcommand{\thepoemrtline}{}%
+}%
 \newdimen\poem@linenumboxwd\poem@linenumboxwd=2em%
 \newlength{\poemlinenumboxwd}\setlength{\poemlinenumboxwd}{2em}%
+\newdimen\poem@rt@linenumboxwd\poem@rt@linenumboxwd=2em%
+\newlength{\poemrtlinenumboxwd}\setlength{\poemrtlinenumboxwd}{2em}%
 \newdimen\poem@linenumboxgap\poem@linenumboxgap=0pt%
 \newlength{\poemlinenumboxgap}\setlength{\poemlinenumboxgap}{0pt}%
+\newdimen\poem@rt@linenumboxgap\poem@rt@linenumboxgap=0pt%
+\newlength{\poemrtlinenumboxgap}\setlength{\poemrtlinenumboxgap}{0pt}%
 \def\poemlinenumstyle{}%
+\def\poemrtlinenumstyle{}%
 \newdimen\poem@hangindent\poem@hangindent=1em%
 \newlength{\poemhangindent}\setlength{\poemhangindent}{1em}%
 \newcount\poem@indentevery\poem@indentevery=0%
@@ -65,12 +92,12 @@
 \newlength{\poemverseskip}\setlength{\poemverseskip}{\baselineskip}%
 \newdimen\poem@buff%
 \newcount\poem@tmp%
+\def\loopcommand{\hin}%
 \def\poem@expandvsloop#1{\poem@xvsloop#1\relax}%
 \def\poem@xvsloop#1{%
 \ifx\relax#1\else%
-\poem@tmp=#1%
-\ifnum\poem@tmp=\the\vslineno%
-\hin%
+\ifnum#1=\the\vslineno%
+\loopcommand\relax%
 \fi%
 \expandafter\poem@xvsloop%
 \fi%
@@ -79,39 +106,47 @@
 \newcommand{\poem@ifhyph}[1]{\@ifnextchar -{\@firstoftwo{#1}}}
 \newcommand{\poem@ifstar}[1]{\@ifnextchar *{\@firstoftwo{#1}}}
 \newcommand{\poem@ifques}[1]{\@ifnextchar ?{\@firstoftwo{#1}}}
-\newcount\poem@tmpa
-\def\modulo#1#2{%
-\poem@tmpa=#1%
-\divide\poem@tmpa by#2%
-\multiply\poem@tmpa by#2%
-\multiply\poem@tmpa by-1%
-\advance\poem@tmpa by#1\relax%
-}%
 \def\poemvsindentlines{}%
-\def\poemlnindentlines{}%
+\def\poemnumlines{}%
+\def\poemrtnumlines{}%
 \def\tlap#1{\vbox to0pt{\vss\hbox{#1}}}%
 \def\blap#1{\vbox to0pt{\hbox{#1}\vss}}%
 \def\placelineno{%
 \setcounter{verseline}{\the\vslineno}%
 \setcounter{poemline}{\the\poemlineno}%
+\setcounter{stanzacount}{\the\stanzano}%
+\setcounter{poemrtline}{\the\poemrtlineno}%
 \poem@linenumsevery=\value{poemlinenumsevery}%
+\poem@rt@linenumsevery=\value{poemrtlinenumsevery}%
+\poem@indentevery=\value{poemindentevery}%
 \poem@linenumboxgap=\the\poemlinenumboxgap%
 \poem@linenumboxwd=\the\poemlinenumboxwd%
-\modulo{\the\poemlineno}{\the\poem@linenumsevery}%
+\poem@rt@linenumboxgap=\the\poemrtlinenumboxgap%
+\poem@rt@linenumboxwd=\the\poemrtlinenumboxwd%
 \ifpoemlinenums%
-\ifnum\poem@tmpa=0%
-\ifpoemlinenumright%
-\hskip0pt\tlap{%
-\rlap{%
-\hskip\poem@maxlinewd%
-\hskip\poem@linenumboxgap%
-\hbox to\poem@linenumboxwd{%
-\hfil%
-\poemlinenumstyle\thepoemline%
-}%
-}%
+\def\loopcommand{\poem@putlineno}%
+\expandafter\poem@expandvsloop\expandafter{\poemnumlines}%
+\def\loopcommand{\poem@rt@putlineno}%
+\expandafter\poem@expandvsloop\expandafter{\poemrtnumlines}%
+\ifnum\poem@linenumsevery=0\relax\else%
+\modulo{\the\vslineno}{\the\poem@linenumsevery}%
+\ifnum\remainder=0\poem@putlineno\fi%
+\fi%
+\ifnum\poem@rt@linenumsevery=0\relax\else%
+\modulo{\the\vslineno}{\the\poem@rt@linenumsevery}%
+\ifnum\remainder=0\poem@rt@putlineno\fi%
+\fi%
+\fi%
+\ifnum\poem@indentevery=0\relax\else%
+\modulo{\the\vslineno}{\the\poem@indentevery}%
+\ifnum\remainder=0\hin\fi%
+\fi%
+\def\loopcommand{\hin}%
+\expandafter\poem@expandvsloop\expandafter{\poemvsindentlines}%
+\def\@currentlabel{\thepoemline}%
+\phantomsection%
 }%
-\else%
+\def\poem@putlineno{%
 \hskip-\poem@linenumboxgap%
 \llap{%
 \tlap{%
@@ -120,30 +155,26 @@
 \hfil%
 }\penalty10000%
 }%
-}\penalty10000%
+}%
+\ifnum\poemlineno=1\relax\else%
+\ifnum\vslineno=1%
+\vskip-\baselineskip%
 \fi%
-\else
-\hskip-\poem@linenumboxgap%
-\llap{\tlap{\hbox to\poem@linenumboxwd{\hfil}}}%
-\penalty10000%
 \fi%
-\else
-\hskip-\poem@linenumboxgap%
-\llap{\tlap{\hbox to\poem@linenumboxwd{\hfil}}}%
 \penalty10000%
-\fi%
-\par\vskip-\baselineskip%
-\poem@indentevery=\value{poemindentevery}%
-\ifnum\poem@indentevery=0%
-\else%
-\modulo{\the\poemlineno}{\the\poem@indentevery}%
-\ifnum\poem@tmpa=0%
-\hin%
-\fi%
-\fi%
-\expandafter\poem@expandvsloop\expandafter{\poemvsindentlines}%
-\def\@currentlabel{\thepoemline}%
-\phantomsection%
+}%
+\def\poem@rt@putlineno{%
+\hskip0pt\tlap{%
+\rlap{%
+\hskip\poem@maxlinewd%
+\hskip\poem@rt@linenumboxgap%
+\hbox to\poem@rt@linenumboxwd{%
+\hfil%
+\poemrtlinenumstyle\thepoemrtline%
+}%
+}%
+}%
+\vskip-\baselineskip%
 }%
 \def\poem@endline{%
 \par%
@@ -170,6 +201,7 @@
 \par%
 \vslineno=1%
 \advance\poemlineno by1%
+\advance\stanzano by1%
 \poem@verseskip=\the\poemverseskip%
 \vskip\poem@verseskip%
 \leftskip=\poem@defleftskip%
@@ -217,6 +249,7 @@
 \advance\hsize by\the\poem@maxlinewd%
 \poemlineno=1%
 \vslineno=1%
+\stanzano=1%
 \poem@topskip=\the\poemtopskip%
 \poem@botskip=\the\poembotskip%
 \vskip\poem@topskip%
-- 
cgit v1.2.3

