From d73d6bf4e9505d2e144f0aa7ba2068d554a43406 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 30 Oct 2021 19:39:58 +0000 Subject: cutwin (30oct21) git-svn-id: svn://tug.org/texlive/trunk@60901 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/cutwin/cutwin.sty | 100 +++++++++++--------------- 1 file changed, 42 insertions(+), 58 deletions(-) (limited to 'Master/texmf-dist/tex/latex/cutwin/cutwin.sty') diff --git a/Master/texmf-dist/tex/latex/cutwin/cutwin.sty b/Master/texmf-dist/tex/latex/cutwin/cutwin.sty index dcd73b55a1a..cdf1b47bc08 100644 --- a/Master/texmf-dist/tex/latex/cutwin/cutwin.sty +++ b/Master/texmf-dist/tex/latex/cutwin/cutwin.sty @@ -11,6 +11,9 @@ %% and Alan Hoenig %% Copyright 2010 Peter R. Wilson %% +%% Current Maintainer David Carlisle +%% Copyright 2021 Peter R. Wilson, David Carlisle +%% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3 of this license or (at your option) any @@ -20,72 +23,65 @@ %% and version 1.3 or later is part of all distributions of %% LaTeX version 2003/06/01 or later. %% -%% This work has the LPPL maintenance status "author-maintained". +%% This work has the LPPL maintenance status "maintained". %% %% This work consists of the files listed in the README file. %% ----------------------------------------------------------------- %% %% \iffalse meta-comment \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{cutwin}[2010/09/29 v0.1 cutout windows] - +\ProvidesPackage{cutwin}[2021/10/13 v0.2 cutout windows] \newcount\c@twwinlines % window lines \newcount\c@twtoplines % top lines \newcount\c@twcnt % a count - \newdimen\c@twlftside % left width \newdimen\c@twrtside % right width \newdimen\c@twtopht % height of top text \newdimen\c@twvsilg % Vertical Shift or InterLine Glue - \newtoks\c@twtoka % build of parshape spec \newtoks\c@twtokb % build of parshape spec - \newbox\c@twrawtext % text as input \newbox\c@twholdwin % text for window sides \newbox\c@twwindow % composed window \newbox\c@twfinaltext % final assembled cutout paragraph \newbox\c@twslicea % slice A of window text \newbox\c@twsliceb % slice B of window text - +\newdimen\c@twdima % formally \@tempdimb +\newdimen\c@twdimb % formally \@tempdimc \newcommand*{\opencutleft}{\def\c@twl@c{-1}} \newcommand*{\opencutright}{\def\c@twl@c{1}} \newcommand*{\opencutcenter}{\def\c@twl@c{0}} \opencutcenter - \newcommand{\cutfuzz}{\vbadness=50000 \hbadness=50000 \sloppy} - \newcommand*{\c@twcalcilg}{% \c@twvsilg=\baselineskip - \setbox0=\hbox{(} + \setbox0=\hbox{(}% \advance\c@twvsilg-\ht0 \advance\c@twvsilg-\dp0} - \newcommand*{\pageinwindow}{% - \@tempdimc=\c@twwinlines\baselineskip % cutout height - \@tempdimb=\hsize + \c@twdimb=\c@twwinlines\baselineskip % cutout height + \c@twdima=\hsize \ifnum\c@twl@c=\m@ne % openleft - \advance\@tempdimb -\c@twrtside + \advance\c@twdima -\c@twrtside \else \ifnum\c@twl@c=\@ne % openright - \advance\@tempdimb -\c@twlftside + \advance\c@twdima -\c@twlftside \else% center - \advance\@tempdimb - \c@twlftside - \advance\@tempdimb - \c@twrtside + \advance\c@twdima - \c@twlftside + \advance\c@twdima - \c@twrtside \fi \fi \begin{picture}(0,0)% \put(0,0){% \raisebox{4pt}{% - \begin{minipage}[t][\@tempdimc][c]{\@tempdimb} + \begin{minipage}[t][\c@twdimb][c]{\c@twdima}% \windowpagestuff - \end{minipage} + \end{minipage}% }% end raisebox }% end put \end{picture}} \newcommand*{\windowpagestuff}{} - \newenvironment{cutout}[4]{% \cutfuzz \c@twtoplines=#1\relax @@ -111,18 +107,17 @@ \fi \setbox\c@twholdwin=\vsplit\c@twrawtext to\c@twtopht \ifnum\c@twl@c=\z@% center - \c@twcompctr{\c@twholdwin}{\c@twwindow} + \c@twcompctr{\c@twholdwin}{\c@twwindow}% \else% left or right - \c@twcomplftrt{\c@twholdwin}{\c@twwindow} + \c@twcomplftrt{\c@twholdwin}{\c@twwindow}% \fi \setbox\c@twfinaltext= \vbox{\ifnum\c@twtoplines>\z@\unvbox\c@twfinaltext\vskip\c@twvsilg\fi \unvbox\c@twwindow% \vskip-\c@twvsilg\unvbox\c@twrawtext}% \box\c@twfinaltext} - \newcommand*{\c@twcompctr}[2]{% - \def\c@twfirst{1} + \def\c@twfirst{1}% \loop\advance\c@twwinlines\m@ne \setbox\c@twslicea=\vsplit#1 to\baselineskip \setbox\c@twsliceb=\vsplit#1 to\baselineskip @@ -135,15 +130,14 @@ \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\box\c@twslicea\hfil\box\c@twsliceb}}% \fi - \def\c@twfirst{2} + \def\c@twfirst{2}% \ifnum\c@twwinlines>\z@\repeat} - \newcommand*{\c@twcomplftrt}[2]{% \def\c@twfirst{1}% \loop\advance\c@twwinlines\m@ne \setbox\c@twslicea=\vsplit#1 to\baselineskip \ifnum\c@twl@c=\m@ne% open left, text at right - \c@twprune{\c@twslicea}{\c@twrtside} + \c@twprune{\c@twslicea}{\c@twrtside}% \ifnum\c@twfirst=\@ne \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\pageinwindow\hfil\box\c@twslicea}}% @@ -151,10 +145,10 @@ \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\mbox{}\hfil\box\c@twslicea}}% \fi - \def\c@twfirst{2} + \def\c@twfirst{2}% \else \ifnum\c@twl@c=\@ne% open right, text at left - \c@twprune{\c@twslicea}{\c@twlftside} + \c@twprune{\c@twslicea}{\c@twlftside}% \ifnum\c@twfirst=\@ne\relax \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\box\c@twslicea\pageinwindow}}% @@ -162,15 +156,13 @@ \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\box\c@twslicea}}% \fi - \def\c@twfirst{2} + \def\c@twfirst{2}% \fi \fi \ifnum\c@twwinlines>\z@\repeat} - \newcommand*{\c@twprune}[2]{% \unvbox#1 \setbox#1=\lastbox % \box#1 is now an \hbox \setbox#1=\hbox to#2{\strut\unhbox#1\unskip}} - \newcommand*{\c@twmakeparspec}{% \c@twcnt=\c@twwinlines \ifnum\c@twl@c=\z@ @@ -178,7 +170,7 @@ \fi \advance\c@twcnt by \c@twtoplines \advance\c@twcnt by \@ne \ifnum\c@twtoplines>\z@ - \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize} + \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}% \advance\c@twtoplines -1\relax \ifnum\c@twtoplines>\z@\repeat \fi @@ -188,18 +180,17 @@ \fi \loop\c@twtoka=% \ifnum\c@twl@c=\m@ne % openleft - \expandafter{\the\c@twtoka \c@twlftside \c@twrtside} + \expandafter{\the\c@twtoka \c@twlftside \c@twrtside}% \else \ifnum\c@twl@c=\@ne % openright - \expandafter{\the\c@twtoka 0pt \c@twlftside} + \expandafter{\the\c@twtoka 0pt \c@twlftside}% \else %center - \expandafter{\the\c@twtoka 0pt \c@twlftside 0pt \c@twrtside} + \expandafter{\the\c@twtoka 0pt \c@twlftside 0pt \c@twrtside}% \fi \fi \advance\c@twwinlines \m@ne \ifnum\c@twwinlines>\z@\repeat \c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}} - \newcommand*{\c@twcalcshift}{% vertical shift \c@twvsilg=\c@twwinlines\baselineskip \ifnum\c@twtoplines<\@ne @@ -209,13 +200,11 @@ \ifnum\c@twl@c=\z@\else \c@twvsilg=0.5\c@twvsilg \fi} - \newcommand*{\picinwindow}{% \begin{picture}(0,0) \putstuffinpic \end{picture}} \newcommand*{\putstuffinpic}{} - \newenvironment{shapedcutout}[3]{% \cutfuzz \c@twtoplines=#1\relax @@ -240,16 +229,15 @@ \fi \setbox\c@twholdwin=\vsplit\c@twrawtext to\c@twtopht \ifnum\c@twl@c=\z@% center - \c@twcompoddctr{\c@twholdwin}{\c@twwindow} - \else% open left or righyt - \c@twcompoddlftrt{\c@twholdwin}{\c@twwindow} + \c@twcompoddctr{\c@twholdwin}{\c@twwindow}% + \else% open left or right + \c@twcompoddlftrt{\c@twholdwin}{\c@twwindow}% \fi \setbox\c@twfinaltext= \vbox{\ifnum\c@twtoplines>\z@\unvbox\c@twfinaltext\vskip\c@twvsilg\fi \unvbox\c@twwindow% \vskip-\c@twvsilg\unvbox\c@twrawtext}% \box\c@twfinaltext} - \newcommand*{\c@twmaketopoddspec}{% \c@twcnt=\c@twwinlines \ifnum\c@twl@c=\z@ @@ -257,45 +245,42 @@ \fi \advance\c@twcnt by \c@twtoplines \advance\c@twcnt by \@ne %% \c@twcnt is total of toplines + 2(window lines) + 1 - \c@twtoka={} + \c@twtoka={}% \ifnum\c@twtoplines>\z@ - \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize} + \loop\c@twtoka=\expandafter{\the\c@twtoka 0pt \hsize}% \advance\c@twtoplines -1\relax \ifnum\c@twtoplines>\z@\repeat \fi} - \newcommand*{\c@twaddtospec}[1]{% \c@twtokb=\c@twxpf{\the\c@twtokb 0pt #1 }} \let\c@twxpf\expandafter \newcommand*{\c@twbuildoddspec}[1]{% - \c@twtokb={} + \c@twtokb={}% \@for\c@twlspec:=#1\do{% \c@twxpf\c@twxpf\c@twxpf\c@twaddtospec\c@twxpf{\c@twlspec}}} - \newcommand*{\c@twcompoddctr}[2]{% - \def\c@twrounds{1} - \def\c@twfirst{1} + \def\c@twrounds{1}% + \def\c@twfirst{1}% \@for\c@twlspec:=\c@twb\do{% \ifnum\c@twrounds=1 \setbox\c@twslicea=\vsplit#1 to\baselineskip % first of pair \c@twprune{\c@twslicea}{\c@twlspec}% - \def\c@twrounds{2} + \def\c@twrounds{2}% \else \setbox\c@twsliceb=\vsplit#1 to\baselineskip % second of pair \c@twprune{\c@twsliceb}{\c@twlspec}% \ifnum\c@twfirst=1 \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\box\c@twslicea\hfil\picinwindow\hfil\box\c@twsliceb}}% - \def\c@twfirst{2} + \def\c@twfirst{2}% \else \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\box\c@twslicea\hfil\box\c@twsliceb}}% \fi - \def\c@twrounds{1} + \def\c@twrounds{1}% \fi}} - \newcommand*{\c@twcompoddlftrt}[2]{% - \def\c@twfirst{1} + \def\c@twfirst{1}% \@for\c@twlspec:=\c@twb\do{% \setbox\c@twslicea=\vsplit#1 to\baselineskip % get a line \c@twprune{\c@twslicea}{\c@twlspec}% @@ -303,7 +288,7 @@ \ifnum\c@twfirst=1 \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\mbox{}\hfil\picinwindow\hfil\box\c@twslicea}}% - \def\c@twfirst{2} + \def\c@twfirst{2}% \else \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\mbox{}\hfil\box\c@twslicea}}% @@ -313,14 +298,13 @@ \ifnum\c@twfirst=1 \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\box\c@twslicea\hfil\picinwindow\hfil}}% - \def\c@twfirst{2} + \def\c@twfirst{2}% \else \setbox#2=\vbox{\unvbox#2\hbox to\hsize{\box\c@twslicea\hfil}}% \fi \fi \fi}} - \endinput %% %% End of file `cutwin.sty'. -- cgit v1.2.3