From d86e9513f58842b43460cb42d021a2e51fd5730d Mon Sep 17 00:00:00 2001 From: Karl Berry 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') 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