summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/verse/verse.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-05-13 22:12:56 +0000
committerKarl Berry <karl@freefriends.org>2014-05-13 22:12:56 +0000
commitbd7687e8abb5975905db822498e640ca7e2e1b2c (patch)
tree1c3ef1ac8b02d510cfaf7b4a5a8c3782475a0622 /Master/texmf-dist/tex/latex/verse/verse.sty
parent2996c9ba02a4f95b0eb527de5f316816b9d25be0 (diff)
verse (11may14)
git-svn-id: svn://tug.org/texlive/trunk@34017 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/verse/verse.sty')
-rw-r--r--Master/texmf-dist/tex/latex/verse/verse.sty195
1 files changed, 90 insertions, 105 deletions
diff --git a/Master/texmf-dist/tex/latex/verse/verse.sty b/Master/texmf-dist/tex/latex/verse/verse.sty
index 7d4c64f1e69..2a5e61dd15c 100644
--- a/Master/texmf-dist/tex/latex/verse/verse.sty
+++ b/Master/texmf-dist/tex/latex/verse/verse.sty
@@ -25,7 +25,6 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{verse}[2009/09/04 v2.4a verse typesetting]
-
\newcounter{vslineno}
\newcounter{poemline}
\newcounter{fvsline}
@@ -33,19 +32,16 @@
\newcounter{modulo@vs}
\newcounter{verse@envctr}\setcounter{verse@envctr}{0}
\newcommand*{\theHpoemline}{\arabic{verse@envctr}.\arabic{poemline}}
-
\newcommand{\poemlines}[1]{%
\ifnum#1>\z@
- \setcounter{modulo@vs}{#1}
+ \setcounter{modulo@vs}{#1}%
\else
- \setcounter{modulo@vs}{0}
+ \setcounter{modulo@vs}{0}%
\fi
}
\poemlines{0}
-
\newcommand*{\verselinenumfont}[1]{\def\vlnumfont{#1}}
\verselinenumfont{\rmfamily}
-
\newcommand*{\setverselinenums}[2]{%
\setcounter{poemline}{#1}\addtocounter{poemline}{\m@ne}%
\refstepcounter{poemline}%
@@ -55,12 +51,12 @@
\multiply\@tempcnta\c@modulo@vs
\c@fvsline #2\relax
\advance\c@fvsline-\@tempcnta
- \fi}
-
+ \fi
+}
\newcommand{\getmodulo@vs}{\bgroup
- \ifnum\c@modulo@vs<\@ne% no line numbers
+ \ifnum\c@modulo@vs<\@ne % no line numbers
\else
- \ifnum\c@modulo@vs<\tw@% every line numbered
+ \ifnum\c@modulo@vs<\tw@ % every line numbered
\vlnumfont\thepoemline
\else
\@tempcnta\c@poemline
@@ -72,61 +68,66 @@
\fi
\fi
\egroup}
-
\newif\ifaltindent
- \altindentfalse
\newif\ifpattern
- \patternfalse
\newif\ifstarpattern
- \starpatternfalse
-
\newlength{\versewidth}
-
-\newlength{\vgap} \setlength{\vgap}{1.5em}
+\newlength{\vgap}
+\setlength{\vgap}{1.5em}
\newcommand{\vin}{\hspace*{\vgap}}
-\newlength{\vindent} \setlength{\vindent}{2\vgap}
-\newlength{\stanzaskip} \setlength{\stanzaskip}{0.75\baselineskip}
-
+\newlength{\vindent}
+\setlength{\vindent}{2\vgap}
+\newlength{\stanzaskip}
+\setlength{\stanzaskip}{0.75\baselineskip}
\newlength{\vleftskip}
- \setlength{\vleftskip}{30pt}
+\setlength{\vleftskip}{30pt}
\newlength{\vrightskip}
- \setlength{\vrightskip}{10pt}
-
-\newcommand{\flagverse}[1]{\hskip-\vleftskip\llap{#1}\hskip\vleftskip\ignorespaces}
-
-\newcommand*{\verselinebreak}[1][\z@]{\newline\hspace*{#1}\ignorespaces}
+\setlength{\vrightskip}{10pt}
+\newcommand{\flagverse}[1]{%
+ \hskip-\vleftskip\llap{#1}\hskip\vleftskip
+ \ignorespaces
+}
+\newcommand*{\verselinebreak}[1][\z@]{%
+ \newline\hspace*{#1}%
+ \ignorespaces
+}
\newcommand{\incr@vsline}{%
\refstepcounter{poemline}%
- \stepcounter{vslineno}}
-
+ \stepcounter{vslineno}%
+}
\newcommand{\@vsifbang}[1]{\@ifnextchar !{\@firstoftwo{#1}}}
\newcommand{\@vsifgt}[1]{\@ifnextchar >{\@firstoftwo{#1}}}
-
\newcommand*{\@vstypelinenumright}{%
- \hfill\rlap{\kern\vrightskip\kern\rightmargin\getmodulo@vs}}
+ \hfill\rlap{\kern\vrightskip\kern\rightmargin\getmodulo@vs}%
+}
\newcommand*{\@vstypelinenumleft}{%
- \hfill\rlap{\kern-\textwidth\kern-\vrightskip\getmodulo@vs}}
+ \hfill\rlap{\kern-\textwidth\kern-\vrightskip\getmodulo@vs}%
+}
\newcommand*{\verselinenumbersright}{\def\@vstypelinenum{\@vstypelinenumright}}
-\newcommand*{\verselinenumbersleft}{\def\@vstypelinenum{\@vstypelinenumleft}}
+\newcommand*{\verselinenumbersleft} {\def\@vstypelinenum{\@vstypelinenumleft}}
\verselinenumbersright
-
\newcommand{\@vscentercr}{%
\ifhmode \unskip\else \@nolnerr\fi
- \@vstypelinenum%
+ \@vstypelinenum
%%%% \hfill\rlap{\kern\vrightskip\kern\rightmargin\getmodulo@vs}%
\@vsifgt{\verselinebreak}{%
- \incr@vsline
- \par\@ifstar{\nobreak\@vsxcentercr}{%
- \@vsifbang{\@ifnextchar[ {\@vsicentercr}{}}{\@vsxcentercr}}}}
-\newcommand{\@vsxcentercr}{\addvspace{-\parskip}%
- \@ifnextchar[ {\@vsicentercr}{\start@vsline}}
+ \incr@vsline
+ \par\@ifstar{\nobreak\@vsxcentercr}{%
+ \@vsifbang{\@ifnextchar[ {\@vsicentercr}{}}{\@vsxcentercr}%
+ }%
+ }%
+}
+\newcommand{\@vsxcentercr}{%
+ \addvspace{-\parskip}%
+ \@ifnextchar[ {\@vsicentercr}{\start@vsline}%
+}
\def\@vsicentercr[#1]{\vskip #1\ignorespaces \start@vsline}
\newcommand{\start@vsline}{%
\ifaltindent\ifodd\c@vslineno\else\vin\fi\fi%
\ifpattern\get@vsindent\fi%
- \ifstarpattern\getstar@vsindent\fi}
-
-\renewenvironment{verse}[1][\linewidth]{
+ \ifstarpattern\getstar@vsindent\fi
+}
+\renewenvironment{verse}[1][\linewidth]{%
\stepcounter{verse@envctr}%
\setcounter{poemline}{0}\refstepcounter{poemline}%
\setcounter{vslineno}{1}%
@@ -143,46 +144,41 @@
\else
\rightmargin \leftmargin
\fi
- \addtolength{\leftmargin}{\vindent}}
- \item[]}{\endlist}
-
+ \addtolength{\leftmargin}{\vindent}}%
+ \item[]%
+}
+{\endlist}
\newenvironment{altverse}%
{\starpatternfalse\patternfalse\altindenttrue\setcounter{vslineno}{1}}%
{\altindentfalse}
-
-\newcommand{\@nameedef}[1]{
- \expandafter\protected@edef\csname #1\endcsname}
-
+\newcommand{\vs@nameedef}[1]{%
+ \expandafter\protected@edef\csname #1\endcsname
+}
\newif\ifbounderror
- \bounderrorfalse
\newif\ifinteger
-
\newcounter{chrsinstr} % CHARactersINSTRing
-
\newcommand{\newarray}[3]{%
- \@nameedef{#1-low}{#2}%
- \@nameedef{#1-high}{#3}%
+ \vs@nameedef{#1-low}{#2}%
+ \vs@nameedef{#1-high}{#3}%
\ifnum #3<#2
\PackageError{verse}{Limits for array #1 are in reverse order}{\@ehc}%
\fi
}
-
\newcommand{\stringtoarray}[2]{%
\def\@vsarrayname{#1}%
\protected@edef\the@vsstring{#2}%
\newarray{\@vsarrayname}{1}{1}%
\@ifmtarg{#2}{%
\c@chrsinstr \z@
- \@namedef{\@vsarrayname-1}{}
+ \@namedef{\@vsarrayname-1}{}%
}{%
\c@chrsinstr \@ne
\expandafter\@vsstringtoarray \the@vsstring\@vsend
- }
+ }%
}
-
\def\@vsstringtoarray #1#2\@vsend{%
- \@namedef{\@vsarrayname-\the\c@chrsinstr}{#1}
- \@nameedef{\@vsarrayname-high}{\the\c@chrsinstr}
+ \@namedef{\@vsarrayname-\the\c@chrsinstr}{#1}%
+ \vs@nameedef{\@vsarrayname-high}{\the\c@chrsinstr}%
\@ifmtarg{#2}{%
\def\@vsinext{}%
}{%
@@ -190,55 +186,49 @@
\def\@vsinext{%
\@vsstringtoarray #2\@vsend%
}%
- }
+ }%
\@vsinext
}
-
\newcommand{\setarrayelement}[3]{%
\checkarrayindex{#1}{#2}%
- \@nameedef{#1-#2}{#3}%
+ \vs@nameedef{#1-#2}{#3}%
}
-
\newcommand{\getarrayelement}[3]{%
\checkarrayindex{#1}{#2}%
\protected@edef#3{\@nameuse{#1-#2}}%
}
-
\newcommand{\checkarrayindex}[2]{%
\bounderrorfalse
- \expandafter\ifx\csname #1-low\endcsname\relax%
+ \expandafter\ifx\csname #1-low\endcsname\relax
\ifpattern\else
\PackageError{verse}{No array called #1}{\@ehc}%
\fi
\bounderrortrue
\fi
- \ifnum #2<\@nameuse{#1-low}\relax%
+ \ifnum #2<\@nameuse{#1-low}\relax
\ifpattern\else
\PackageError{verse}{Index #2 outside limits for array #1}{\@ehc}%
\fi
\bounderrortrue
\fi
- \ifnum #2>\@nameuse{#1-high}\relax%
+ \ifnum #2>\@nameuse{#1-high}\relax
\ifpattern\else
\PackageError{verse}{Index #2 outside limits for array #1}{\@ehc}%
\fi
\bounderrortrue
\fi
}
-
\begingroup
\catcode`\Q=3
\long\gdef\@ifmtarg#1{\@xifmtarg#1QQ\@secondoftwo\@firstoftwo\@nil}
\long\gdef\@xifmtarg#1#2Q#3#4#5\@nil{#4}
\long\gdef\@ifnotmtarg#1{\@xifmtarg#1QQ\@firstofone\@gobble\@nil}
\endgroup
-
\newcommand{\arraytostring}[2]{%
\def#2{}%
\c@chrsinstr = \@nameuse{#1-low}%
\@vsarraytostring{#1}{#2}%
}
-
\newcommand{\@vsarraytostring}[2]{%
\ifnum\c@chrsinstr>\@nameuse{#1-high}\else
\protected@edef#2{#2\@nameuse{#1-\thechrsinstr}}%
@@ -246,20 +236,18 @@
\@vsarraytostring{#1}{#2}%
\fi%
}
-
\newcommand{\checkifinteger}[1]{%
\protected@edef\@vsa{#1}%
\ifcat _\ifnum9<1\gobm{#1} _\else A\fi
- \integertrue%
+ \integertrue
\else
- \integerfalse%
- \fi%
+ \integerfalse
+ \fi
}
\newcommand{\gobm}[1]{#1}
-
\newcommand{\indentpattern}[1]{%
- \stringtoarray{Array@vs}{#1}}
-
+ \stringtoarray{Array@vs}{#1}%
+}
\newcommand{\get@vsindent}{%
\getarrayelement{Array@vs}{\number\value{vslineno}}{\@vspat}%
\ifbounderror
@@ -276,54 +264,51 @@
\def\@vspat{0}%
\fi
\fi
- \ifcase\@vspat\else\hspace*{\@vspat\vgap}\fi}
+ \ifcase\@vspat\else\hspace*{\@vspat\vgap}\fi
+}
\newcommand{\getstar@vsindent}{%
\expandafter\ifx\csname Array@vs-high\endcsname\relax
- \PackageError{verse}{A pattern has not been specified}{\@ehc}
+ \PackageError{verse}{A pattern has not been specified}{\@ehc}%
\else
\ifnum\c@vslineno>\@nameuse{Array@vs-high}%
\setcounter{vslineno}{1}%
\fi
\get@vsindent
- \fi}
-
-\newenvironment{patverse}%
- {\starpatternfalse\patterntrue\altindentfalse\setcounter{vslineno}{1}}%
+ \fi
+}
+\newenvironment{patverse}
+ {\starpatternfalse\patterntrue\altindentfalse\setcounter{vslineno}{1}}
{\patternfalse}
-
-\newenvironment{patverse*}%
- {\starpatterntrue\patternfalse\altindentfalse\setcounter{vslineno}{1}}%
+\newenvironment{patverse*}
+ {\starpatterntrue\patternfalse\altindentfalse\setcounter{vslineno}{1}}
{\starpatternfalse}
-
-\newcommand{\poemtitle}{\par%
- \secdef\@vsptitle\@vssptitle}
+\newcommand{\poemtitle}{%
+ \par
+ \secdef\@vsptitle\@vssptitle
+}
\newcommand{\poemtoc}{section}
-
\def\@vsptitle[#1]#2{%
\@nameuse{phantomsection}%
- \addcontentsline{toc}{\poemtoc}{#1}
+ \addcontentsline{toc}{\poemtoc}{#1}%
\poemtitlemark{#1}%
- \@vstypeptitle{#2}
- \@afterheading}
-
+ \@vstypeptitle{#2}%
+ \@afterheading
+}
\def\@vssptitle#1{%
\@vstypeptitle{#1}
- \@afterheading}
-
+ \@afterheading
+}
\newcommand{\@vstypeptitle}[1]{%
- \vspace{\beforepoemtitleskip}
- {\poemtitlefont #1\par}
- \vspace{\afterpoemtitleskip}
+ \vspace{\beforepoemtitleskip}%
+ {\poemtitlefont #1\par}%
+ \vspace{\afterpoemtitleskip}%
}
-
\newcommand{\poemtitlefont}{\normalfont\large\bfseries\centering}
\newcommand{\poemtitlemark}[1]{}
-
\newlength{\beforepoemtitleskip}
- \setlength{\beforepoemtitleskip}{3.5ex \@plus 1ex \@minus .2ex}
+\setlength{\beforepoemtitleskip}{3.5ex \@plus 1ex \@minus .2ex}
\newlength{\afterpoemtitleskip}
- \setlength{\afterpoemtitleskip}{2.3ex \@plus.2ex}
-
+\setlength{\afterpoemtitleskip}{2.3ex \@plus.2ex}
\endinput
%%
%% End of file `verse.sty'.