From bf818002ffc1f896127f6d802d995074413cc0f7 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Tue, 28 Sep 2021 12:00:08 +0300 Subject: [PATCH] refactoring and tweaking... still not done... Signed-off-by: Alex A. Naanou --- photobook.cls | 90 ++++++++++++++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 41 deletions(-) diff --git a/photobook.cls b/photobook.cls index ca1f4e3..732914a 100644 --- a/photobook.cls +++ b/photobook.cls @@ -2868,6 +2868,33 @@ % -- fold direction with panel widths \edef\photobook@foldout@prevfold{}% \edef\foldoutspec{2} +\newcommand\photobook@foldout@foldcompensation[1]{ + % XXX of cur and last fold are the same add \clearfoldoutblock + \ifthenelse{\equal{#1}{\photobook@foldout@prevfold}}{% + % XXX + }{% + % XXX + } +} +% XXX revise numbers... +\newlength\foldoutmaxpanelwidth +\newcommand\photobook@foldout@pushpanel[2]{% + \ifdim #1 = 0pt% + \setlength\foldoutcellwidth{% + \foldoutmaxpanelwidth + + \photobook@foldout@foldcompensation{#2}}\fi% + \else% + \setlength\foldoutcellwidth{% + #1 + \photobook@foldout@foldcompensation{#2}}\fi% + % XXX if cur and last folds are the same set max panel length to \foldoutcellwidth... + \ifthenelse{\equal{#2}{\photobook@foldout@prevfold}}{% + \setlength\foldoutmaxpanelwidth{\foldoutcellwidth}}{} + \setlength\foldoutwidth{ + \foldoutwidth + + \foldoutcellwidth}% + \edef\foldoutcellwidths{% + \foldoutcellwidths, \the\foldoutcellwidth}} + \newenvironment{foldoutA}[1][\foldoutspec]{% \begingroup% \setsepchar{ }% @@ -2878,60 +2905,41 @@ % XXX % fold spec... \else% - % XXX need to maintain a max panel width and use it as default... - % XXX + \setlength\foldoutmaxpanelwidth{% + \blockwidth} \edef\photobook@foldout@prevfold{}% \foreachitem \photobook@foldout@opt \in \photobook@foldout@args{% % in fold... \ifthenelse{\equal{\photobook@foldout@opt}{in}}{% - % XXX revise numbers... - \setlength\foldoutcellwidth{% - \foldoutcellwidth - + \getFoldCompensation{% - \photobook@foldout@opt}}% - \setlength\foldoutwidth{ - \foldoutwidth - + \foldoutcellwidthx}% - \edef\foldoutcellwidths{% - \foldoutcellwidths, \the\foldoutcellwidth}% - % - \edef\photobook@foldout@prevfold{\photobook@foldout@opt}% + \photobook@foldout@pushpanel{% + \foldoutcellwidth}{\photobook@foldout@opt} + % prep for next panel... + \edef\photobook@foldout@prevfold{% + \photobook@foldout@opt}% \setlength\foldoutcellwidth{0pt}% % out fold... }{\ifthenelse{\equal{\photobook@foldout@opt}{out}}{% - % XXX this is the same as for in... - % XXX + \photobook@foldout@pushpanel{% + \foldoutcellwidth}{\photobook@foldout@opt} + % prep for next panel... + \edef\photobook@foldout@prevfold{% + \photobook@foldout@opt}% + \setlength\foldoutcellwidth{0pt}% % explicit size... }{% % finalize prev panel... - \ifdim \foldoutcellwidth = 0pt% - % XXX revise numbers... - \setlength\foldoutcellwidth{% - \blockwidth - + \getFoldCompensation{ - \photobook@foldout@prevfold}}% - \setlength\foldoutwidth{ - \foldoutwidth - + \foldoutcellwidthx}% - \edef\foldoutcellwidths{% - \foldoutcellwidths, \the\foldoutcellwidth}\fi + \ifdim \foldoutcellwidth > 0pt% + \photobook@foldout@pushpanel{% + \foldoutcellwidth}{\photobook@foldout@prevfold}\fi % - \setlength\foldoutcellwidth{\photobook@foldout@opt}% - }}% - }% + \setlength\foldoutcellwidth{\photobook@foldout@opt}}}}% % we ended by a fold -> add trailing panel... \ifdim \foldoutcellwidth = 0pt% - % XXX revise numbers... - \setlength\foldoutcellwidth{% - \blockwidth - + \getFoldCompensation{ - \photobook@foldout@prevfold}}\fi% - % push last panel... - \setlength\foldoutwidth{ - \foldoutwidth - + \foldoutcellwidthx}% - \edef\foldoutcellwidths{% - \foldoutcellwidths, \the\foldoutcellwidth}\fi% + \photobook@foldout@pushpanel{% + 0pt}{\photobook@foldout@prevfold} + \else% + \photobook@foldout@pushpanel{% + \foldoutcellwidth}{\photobook@foldout@prevfold}\fi% \fi% }{% \endgroup}