texlive[76136] Master/texmf-dist: leporello (24aug25)
commits+karl at tug.org
commits+karl at tug.org
Sun Aug 24 22:50:49 CEST 2025
Revision: 76136
https://tug.org/svn/texlive?view=revision&revision=76136
Author: karl
Date: 2025-08-24 22:50:49 +0200 (Sun, 24 Aug 2025)
Log Message:
-----------
leporello (24aug25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/leporello/README.md
trunk/Master/texmf-dist/doc/latex/leporello/leporello-doc.pdf
trunk/Master/texmf-dist/doc/latex/leporello/leporello-doc.tex
trunk/Master/texmf-dist/tex/latex/leporello/leporello.cls
Added Paths:
-----------
trunk/Master/texmf-dist/doc/latex/leporello/doc/leporello.pdf
trunk/Master/texmf-dist/doc/latex/leporello/doc/leporello.svg
Modified: trunk/Master/texmf-dist/doc/latex/leporello/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/leporello/README.md 2025-08-24 20:50:37 UTC (rev 76135)
+++ trunk/Master/texmf-dist/doc/latex/leporello/README.md 2025-08-24 20:50:49 UTC (rev 76136)
@@ -1,5 +1,7 @@
-
+
+
+
# The `leporello` class
A simple LaTeX document class to create folded leaflets with the following key features:
@@ -11,4 +13,4 @@
---
-This package including all files is subject to the LPPL 1.3c license. Copyright 2025 Jasper Habicht (mail(at)jasperhabicht.de).
\ No newline at end of file
+This package including all files is subject to the LPPL 1.3c license. Copyright 2025 Jasper Habicht (mail(at)jasperhabicht.de).
Added: trunk/Master/texmf-dist/doc/latex/leporello/doc/leporello.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/latex/leporello/doc/leporello.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/leporello/doc/leporello.pdf 2025-08-24 20:50:37 UTC (rev 76135)
+++ trunk/Master/texmf-dist/doc/latex/leporello/doc/leporello.pdf 2025-08-24 20:50:49 UTC (rev 76136)
Property changes on: trunk/Master/texmf-dist/doc/latex/leporello/doc/leporello.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/leporello/doc/leporello.svg
===================================================================
--- trunk/Master/texmf-dist/doc/latex/leporello/doc/leporello.svg (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/leporello/doc/leporello.svg 2025-08-24 20:50:49 UTC (rev 76136)
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg
+ width="205"
+ height="160"
+ viewBox="0 0 205 160"
+ version="1.1"
+ xmlns="http://www.w3.org/2000/svg">
+ <g
+ style="stroke-linejoin:round"
+ id="g27"
+ transform="translate(-29,-29)">
+ <circle
+ style="fill:#ee8888;stroke:none"
+ cx="109.07056"
+ cy="108.88927"
+ r="79.098022"
+ id="circle1" />
+ <path
+ style="fill:#ffcc99;stroke:#000000;stroke-width:1"
+ d="m 179.48105,111.71287 c 0,0 9.98011,-6.27782 15.2921,-6.27782 5.312,0 6.43879,3.86327 4.34618,4.50715 -2.0926,0.64388 -4.99005,2.41455 -4.99005,2.41455 0.4953,1.95197 0.61916,3.77812 -1.6097,4.34617 -2.27115,0.57883 -13.36047,6.59975 -13.36047,6.59975 z"
+ id="path1" />
+ <path
+ style="fill:#aabbee;stroke:#000000;stroke-width:1"
+ d="m 195.578,103.66439 28.81355,-5.955875 5.15103,14.970165 -33.3207,5.95588 z"
+ id="path2" />
+ <path
+ style="fill:#ffffff;stroke:#000000;stroke-width:1"
+ d="m 196.22188,118.63456 3.7023,12.95805 26.39901,-8.04848 3.21939,-10.86545 z"
+ id="path3" />
+ <path
+ style="fill:#aabbee;stroke:#000000;stroke-width:1"
+ d="m 199.92418,131.59261 -3.78278,9.57768 33.48166,-6.11684 -3.29987,-11.50932 z"
+ id="path4" />
+ <path
+ style="fill:#ffffff;stroke:#000000;stroke-width:1"
+ d="m 196.1414,141.17029 33.48166,-6.11684 -3.46084,8.07256 -25.99659,6.59975 z"
+ id="path5" />
+ <path
+ style="fill:#aabbee;stroke:#000000;stroke-width:1"
+ d="m 200.16563,149.72576 25.99659,-6.59975 4.7486,8.85332 -32.19391,5.39248 z"
+ id="path6" />
+ <path
+ style="fill:#ffffff;stroke:#000000;stroke-width:1"
+ d="m 198.71691,157.37181 32.19391,-5.39248 -2.89745,8.26585 -29.21598,5.07055 z"
+ id="path7" />
+ <path
+ style="fill:#aabbee;stroke:#000000;stroke-width:1"
+ d="m 198.79739,165.31573 29.21598,-5.07055 4.1852,9.25575 -36.54008,4.18521 z"
+ id="path8" />
+ <path
+ style="fill:#ffffff;stroke:#000000;stroke-width:1"
+ d="m 195.65849,173.68614 36.54008,-4.18521 -7.7972,11.36328 -21.45557,1.99189 z"
+ id="path9" />
+ <path
+ style="fill:#ffcc99;stroke:#000000;stroke-width:1"
+ d="m 194.12928,112.35675 c 0,0 7.8875,-0.32194 8.04847,2.0926 0.16097,2.41454 -7.4046,1.60969 -9.65817,2.25357"
+ id="path10" />
+ <path
+ style="fill:#3355aa;stroke:#000000;stroke-width:1"
+ d="m 103.42314,106.56197 c 0,0 -36.9428,24.30639 -43.220613,31.55001 -5.201013,6.00116 -8.809738,14.88192 -10.119279,23.47454 a 79.098022,79.098022 0 0 0 58.987102,26.40097 79.098022,79.098022 0 0 0 30.20487,-5.99446 c 0.2551,-2.45283 1.50837,-8.06774 7.04608,-18.12603 7.88751,-14.32629 34.93017,-30.90612 34.93017,-30.90612 0,0 0.96611,-2.73667 2.09289,-10.94611 1.12679,-8.20945 -2.73678,-13.68236 -2.73678,-13.68236 0,0 -38.31028,13.68236 -51.99269,13.68236 -13.68241,0 -25.19175,-15.4528 -25.19175,-15.4528 z"
+ id="path11" />
+ <path
+ style="fill:#333366;stroke:#000000;stroke-width:1"
+ d="m 101.18834,103.4648 c 0,0 20.03279,12.74814 19.00839,21.17101 -1.02441,8.42288 -3.07321,12.74814 -3.07321,12.74814 0,0 -0.84361,-2.85159 -4.78055,-2.16263 -4.55291,0.79676 -8.992,6.82936 -8.992,6.82936 0,0 13.96882,6.94437 10.69934,7.39847 -4.09762,0.56912 -13.20344,2.73175 -16.276645,11.49609 -3.073212,8.76435 -10.130216,-0.79676 -10.130216,-0.79676 0,0 -7.770862,-14.15125 -10.471687,-21.85395 -2.548802,-7.26913 -9.56648,1.726 -10.016394,0.11383 -3.447993,-12.35515 34.032972,-34.94356 34.032972,-34.94356 z"
+ id="path12" />
+ <path
+ style="fill:#aabbee;stroke:#000000;stroke-width:1"
+ d="m 91.618479,123.61317 c 0,0 -8.154823,4.05304 -7.993853,9.0431 0.16097,4.99006 4.562388,2.83057 4.562388,2.83057 0,0 -9.572541,9.21628 -2.328912,12.59664 4.055547,1.89259 1.58861,7.2119 1.669093,8.62038 0.175443,3.07031 6.851462,-10.11584 11.19764,-13.4962 4.346175,-3.38036 16.045065,-14.25626 15.417365,-23.93258 -0.30858,-4.75698 -13.25454,-9.81579 -13.25454,-9.81579 z"
+ id="path13" />
+ <path
+ style="fill:#ffcc99;stroke:#000000;stroke-width:1"
+ d="m 120.65202,157.98585 c 0,0 3.98379,-3.07321 6.71553,-3.41468 2.73175,-0.34147 5.12203,-0.68294 4.55291,0.79676 -0.56911,1.4797 -5.69113,3.86997 -5.69113,3.86997 0,0 9.20465,-0.3679 11.82257,-2.53053 2.61792,-2.16263 4.05191,-3.1415 4.93866,-2.13948 0.88674,1.00202 -1.47195,6.54226 -5.37897,9.33674 -6.84791,4.89793 -17.52868,5.46349 -17.52868,5.46349 z"
+ id="path14" />
+ <path
+ style="fill:#3355aa;stroke:#000000;stroke-width:1"
+ d="m 74.528901,154.69174 c 0,0 12.631914,4.74229 25.916099,5.15103 10.46302,0.32193 21.24798,-3.86328 21.24798,-3.86328 0,0 0.96582,9.49721 1.77066,13.03854 0.80485,3.54133 2.09261,7.8875 2.09261,7.8875 0,0 -18.35053,7.08266 -22.85768,11.1069"
+ id="path15" />
+ <path
+ style="fill:#ffffff;stroke:#000000;stroke-width:1"
+ d="m 76.21912,75.253288 -9.254215,3.983736 c 0,0 -3.091783,4.60604 -2.705261,7.311698 0.386524,2.705661 2.576586,7.762834 2.576586,7.762834 0,0 -2.216416,-2.03195 -4.735111,-0.966349 -3.349863,1.417249 -4.154799,6.828823 -0.547253,9.792163 0.741224,0.60887 1.527147,0.99294 2.308386,1.21957 -0.775078,0.77848 -0.895583,2.39321 -0.895574,3.16005 -0.01412,2.04302 1.545873,3.19014 3.831274,3.1209 -0.236951,0.53835 -0.790295,2.20447 -0.250268,4.36366 0.540027,2.1592 3.584855,3.96486 8.175006,3.96475 3.030841,-10.07703 3.650566,-30.102691 1.49643,-43.713012 z"
+ id="path16" />
+ <path
+ style="fill:#ffcc99;stroke:#000000;stroke-width:1"
+ d="m 71.893239,108.99942 c 0,0 -0.128842,5.73343 1.288407,9.21213 1.417251,3.47871 4.122912,8.89002 11.660105,10.24286 7.537193,1.35283 15.783009,0.70862 19.648239,-4.63828 3.86523,-5.3469 9.0414,-15.90316 9.0414,-15.90316 L 108.2319,75.252147 c -11.358295,-0.270692 -21.789068,0.07953 -32.93342,1.660329 0,0 -4.56481,7.510543 -4.113867,11.955553 0.450943,4.445013 0.547574,10.95148 0.547574,10.95148 z"
+ id="path17" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1"
+ d="m 73.729222,86.130161 c 0,0 0.497928,-1.302758 2.415765,-1.771563 2.898922,-0.708626 5.765633,1.449459 5.765633,1.449459"
+ id="path18" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1"
+ d="m 87.257518,84.294177 c 0,0 0.225472,2.222507 2.029244,2.125874 1.427593,-0.07648 3.414285,-2.222505 5.31469,-1.674931 1.481128,0.426765 3.671964,3.382073 3.671964,3.382073"
+ id="path19" />
+ <path
+ style="fill:#ffffff;stroke:#000000;stroke-width:1"
+ d="m 77.98097,90.929485 c -1.707142,-0.305997 -3.961857,1.900404 -3.671964,3.704178 0.289891,1.80377 1.642721,3.446494 1.642721,3.446494 l 3.543126,-1.28841 1.707142,-3.543125 c 0,0 -1.513883,-2.01314 -3.221025,-2.319137 z"
+ id="path20" />
+ <ellipse
+ style="fill:#000000;stroke:#000000;stroke-width:1"
+ cx="78.128212"
+ cy="94.617554"
+ rx="0.90188652"
+ ry="1.2400939"
+ id="ellipse20" />
+ <path
+ style="fill:#ffffff;stroke:#000000;stroke-width:1"
+ d="m 91.283797,91.251586 c -3.027762,-0.209366 -4.834179,2.848079 -3.543124,5.346899 0.998516,1.932615 5.346897,1.739353 6.409834,-0.03221 1.06294,-1.771563 0.161052,-5.105322 -2.86671,-5.314689 z"
+ id="path21" />
+ <ellipse
+ style="fill:#000000;stroke:#000000;stroke-width:1"
+ cx="91.595337"
+ cy="95.285667"
+ rx="0.90188652"
+ ry="1.2400939"
+ id="ellipse21" />
+ <path
+ style="fill:#772222;stroke:#000000;stroke-width:1"
+ d="m 78.335284,113.25117 c 0,0 2.567865,1.34653 5.346899,1.03073 2.834499,-0.3221 7.988136,-3.8008 7.988136,-3.8008 0,0 -2.193654,8.14456 -5.926683,8.5035 -6.699727,0.6442 -7.408352,-5.73343 -7.408352,-5.73343 z"
+ id="path22" />
+ <path
+ style="fill:#ffcc99;stroke:#000000;stroke-width:1"
+ d="m 80.912101,91.219376 c 0,0 -0.25768,5.024797 -2.8345,5.540161 -2.576816,0.515363 -10.436113,2.963341 -9.66307,7.601613 0.773047,4.63827 4.767115,8.37466 7.601617,7.47278 2.8345,-0.90189 5.282478,-4.12291 6.442046,-4.12291 1.159568,0 1.417248,1.03072 3.221021,0 1.803773,-1.03073 2.995552,-4.63827 2.641242,-5.6368 -0.823141,-2.319788 -2.73787,-0.16105 -2.73787,-0.16105"
+ id="path23" />
+ <path
+ style="fill:#ffcc99;stroke:#000000;stroke-width:1"
+ d="m 79.816954,122.33446 c 0,0 -2.576817,4.12291 -0.708626,5.9911 1.868194,1.8682 6.506469,2.77008 10.629379,1.8682 4.122909,-0.90189 7.730455,-3.92965 8.052556,-7.15067"
+ id="path24" />
+ <path
+ style="fill:#ffffff;stroke:#000000;stroke-width:1"
+ d="m 110.51573,76.885746 c -3.02368,0.09696 -5.56348,0.689364 -5.56348,0.689364 0,0 -1.27573,3.781092 -0.45579,5.967594 0.85147,2.270581 1.77664,3.05201 1.77664,3.05201 0,0 -2.49671,1.954569 -0.31884,6.377389 1.33359,2.70826 2.32337,2.733166 2.32337,2.733166 0,0 -2.23077,1.630632 -1.13895,5.146971 1.13203,3.64587 3.04275,6.51021 5.33352,8.25583 l -2.30115,4.53047 c 0,0 -0.47225,4.54479 4.04627,5.86166 4.80066,1.39909 7.07387,-0.24716 8.08581,-1.43195 0.7275,-0.85175 2.14509,-3.36776 2.14509,-3.36776 0,0 3.9633,-1.59458 4.73769,-5.05654 0.77439,-3.46197 0.78681,-5.02027 -0.77463,-6.51381 -1.0477,-1.00215 -2.91506,-0.68316 -2.91506,-0.68316 0,0 5.50343,-4.065171 4.87412,-7.744233 -0.59218,-3.461963 -3.37102,-4.464168 -5.42086,-4.555278 -1.98257,-0.08812 -3.23391,0.957048 -3.23391,0.957048 0,0 2.91531,-6.149551 -2.73317,-11.934672 -1.93532,-1.982144 -5.44298,-2.381053 -8.46667,-2.284099 z"
+ id="path25" />
+ <path
+ style="fill:#333366;stroke:#000000;stroke-width:1"
+ d="m 90.175163,77.016809 c 7.666036,-0.257681 30.159147,4.144584 33.369797,4.509431 5.66901,0.644207 20.35687,-5.282478 18.42426,-9.663067 -1.93262,-4.380593 -12.13951,-1.219642 -20.66909,-9.55399 -5.08847,-4.972002 -13.04939,-20.364299 -20.97025,-19.345901 -9.018861,1.159569 -11.733216,11.867593 -11.733216,11.867593 0,0 0.559313,-10.58598 -4.326842,-10.920651 -9.405389,-0.644205 -14.390018,12.725349 -19.380678,17.91205 -5.812728,6.041061 -13.696613,8.554173 -13.881622,11.329306 -0.257682,3.865229 9.79191,8.761183 15.074389,7.601616 5.353944,-1.175256 16.427216,-3.478706 24.093252,-3.736387 z"
+ id="path26" />
+ <path
+ style="fill:#3355aa;stroke:#000000;stroke-width:1"
+ d="m 84.64858,42.517301 c -4.913446,-0.610053 -9.950741,4.344276 -12.285038,7.025923 -3.515182,4.038251 -6.478283,8.805437 -8.973613,11.398788 -6.065809,6.304084 -13.781636,9.779041 -13.013676,11.672155 0.76796,1.893114 11.558927,-5.425436 15.525668,-10.383862 4.12291,-5.153639 11.477033,-18.812838 17.071826,-17.457849 8.245818,1.997035 0.450779,17.973231 4.122746,17.844389 3.671966,-0.128841 3.88061,-19.139715 12.562023,-18.424199 9.395564,0.774375 13.818914,12.671303 20.840744,19.564294 6.78879,6.664222 19.89723,10.068898 20.72118,6.990009 0.42622,-3.692 -10.11674,-0.507053 -18.40925,-9.053498 -5.27506,-5.255934 -12.93124,-19.246545 -21.68455,-20.49442 -4.957987,-0.706812 -10.24038,4.253001 -11.582235,9.564312 -0.01892,-2.813359 -1.109191,-7.775929 -4.895825,-8.246042 z"
+ id="path27" />
+ </g>
+</svg>
Modified: trunk/Master/texmf-dist/doc/latex/leporello/leporello-doc.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/leporello/leporello-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/leporello/leporello-doc.tex 2025-08-24 20:50:37 UTC (rev 76135)
+++ trunk/Master/texmf-dist/doc/latex/leporello/leporello-doc.tex 2025-08-24 20:50:49 UTC (rev 76136)
@@ -11,8 +11,8 @@
% This work has the LPPL maintenance status `maintained'.
%
\documentclass[a4paper]{article}
-\def\leporellofileversion{0.9.2}
-\def\leporellofiledate{18 August 2025}
+\def\leporellofileversion{0.9.5}
+\def\leporellofiledate{25 August 2025}
\usepackage[T1]{fontenc}
\usepackage{Alegreya}
@@ -259,7 +259,7 @@
[The leporello package]
{The \titlemacro{leporello} class}
{A simple LaTeX document class to create folded leaflets using columns and boxes}
- {Jasper Habicht}[E-mail: \href{mailto:mail at jasperhabicht.de}{mail at jasperhabicht.de}.]
+ {Jasper Habicht}[E-mail: \href{mailto:mail at jasperhabicht.de}{mail at jasperhabicht.de}. Title image: \textcopyright{} 2025 Hannah Klöber.]
{Version \leporellofileversion, released on \leporellofiledate}
\changes{v0.7.0}{2025/08/08}{First public beta release.}
@@ -266,8 +266,15 @@
\changes{v0.8.0}{2025/08/12}{Added box attachment mechanism and option to place arbitrary code to box background.}
\changes{v0.9.0}{2025/08/15}{Box attachment mechanism and flow mechanism use box name instead of ID. Enhanced pagination settings. Support for right-to-left and vertical typesetting.}
\changes{v0.9.2}{2025/08/18}{Various improvements and bug fixes.}
+\changes{v0.9.3}{2025/08/22}{Stretch mechanism fixed.}
+\changes{v0.9.5}{2025/08/25}{Improved alignment mechanism.}
\begin{document}
+\vspace*{-2.5em}
+\noindent\hspace{-10pt}
+\includegraphics[width=80mm]{doc/leporello.pdf}
+\bigskip
+
\printdoctitle
\bigskip
@@ -422,7 +429,6 @@
\macro{r} & right edge of the box \\
\macro{t} & top edge of the box \\
\macro{vc} & vertical center of the box \\
- \macro{B} & baseline of the box \\
\macro{b} & bottom edge of the box \\
\bottomrule
\end{longtable}
@@ -452,8 +458,6 @@
\end{macrodef}
If set, the box is stretched until its relevant edge (the bottom edge if aligned at the top, the top edge if aligned at the bottom, in vertical typesetting the left or right edge) meets the edge of the parent column. This key does not expect a value.
-\warning In the current version of the package, the \macro{stretch} key does not work in combination with attaching the box to another box (other than the column box).
-
\begin{macrodef}
|padding left|={<dimension>}
|padding right|={<dimension>}
Modified: trunk/Master/texmf-dist/tex/latex/leporello/leporello.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/leporello/leporello.cls 2025-08-24 20:50:37 UTC (rev 76135)
+++ trunk/Master/texmf-dist/tex/latex/leporello/leporello.cls 2025-08-24 20:50:49 UTC (rev 76136)
@@ -11,7 +11,7 @@
% This work has the LPPL maintenance status `maintained'.
%
\ProvidesExplClass{leporello}
- {2025/08/18} {0.9.2} {Document class for typesetting folded leaflets}
+ {2025/08/25} {0.9.5} {Document class for typesetting folded leaflets}
\cs_generate_variant:Nn \clist_item:Nn { NV }
\cs_generate_variant:Nn \coffin_attach:NnnNnnnn { cencennn , ceeceeee }
@@ -57,9 +57,11 @@
\bool_new:N \l_leporello_continuous_pagination_bool
\bool_new:N \l_leporello_auto_typeset_bool
-\clist_new:N \g_leporello_auto_typeset_clist
-\int_new:N \l_leporello_auto_typeset_int
+\clist_new:N \g__leporello_auto_typeset_clist
+\clist_new:N \l__leporello_auto_typeset_temp_clist
+\int_new:N \l__leporello_auto_typeset_int
+
\keys_define:nn { leporello / global } {
columns .code:n = {
\clist_set:Nn \l_leporello_columns_clist {#1}
@@ -140,14 +142,14 @@
\int_new:N \l_leporello_current_page_int
\int_new:N \l_leporello_current_column_int
\str_new:N \l_leporello_current_column_str
-\dim_new:N \l_leporello_current_column_offset_dim
-\coffin_new:N \l_leporello_current_column_coffin
-
-\int_new:N \g_leporello_box_int
\int_new:N \l_leporello_current_box_int
-\clist_new:N \g_leporello_parent_boxes_clist
-\prop_new:N \g_leporello_box_names_prop
+\coffin_new:N \l__leporello_current_column_coffin
+\dim_new:N \l__leporello_current_column_offset_dim
+\int_new:N \g__leporello_box_int
+\clist_new:N \g__leporello_child_boxes_clist
+\prop_new:N \g__leporello_box_names_prop
+
\clist_new:N \l__leporello_box_align_parent_clist
\clist_new:N \l__leporello_box_align_self_clist
\fp_new:N \l__leporello_box_offset_fp
@@ -164,43 +166,45 @@
\clist_new:N \l__leporello_box_bleed_clist
\str_new:N \l_leporello_box_flow_into_str
-\box_new:N \g_leporello_box_flow_temp_box
+\box_new:N \g__leporello_box_flow_temp_box
-\dim_new:N \l_leporello_typeset_box_width_inner_dim
-\dim_new:N \l_leporello_typeset_box_width_dim
-\dim_new:N \l_leporello_typeset_box_height_dim
-\dim_new:N \l__leporello_typeset_box_bleed_left_dim
-\dim_new:N \l__leporello_typeset_box_bleed_top_dim
+\dim_new:N \l__leporello_typeset_box_width_inner_dim
+\dim_new:N \l__leporello_typeset_box_width_dim
+\dim_new:N \l__leporello_typeset_box_height_dim
\dim_new:N \l__leporello_typeset_box_bleed_x_dim
\dim_new:N \l__leporello_typeset_box_bleed_y_dim
+\dim_new:N \l__leporello_typeset_box_stretch_x_dim
+\dim_new:N \l__leporello_typeset_box_stretch_y_dim
\int_new:N \l__leporello_typeset_coffin_attach_align_int
-\box_new:N \l_leporello_typeset_column_box
-\coffin_new:N \l_leporello_typeset_mark_coffin
+\box_new:N \l__leporello_typeset_column_box
+\coffin_new:N \l__leporello_typeset_mark_coffin
\coffin_new:N \l__leporello_typeset_mark_temp_coffin
\keys_define:nn { leporello / box } {
name .code:n = {
- \prop_gput:NnV \g_leporello_box_names_prop {#1} \g_leporello_box_int
- \prop_gput:cne { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:NnV \g__leporello_box_names_prop {#1} \g__leporello_box_int
+ \prop_gput:cne { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ name } {#1}
} ,
flow ~ into .code:n = {
- \prop_gput:cne { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cne { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ flow ~ into } {#1}
} ,
parent .code:n = {
- \prop_if_in:NnTF \g_leporello_box_names_prop {#1} {
+ \prop_if_in:NnTF \g__leporello_box_names_prop {#1} {
\clist_if_exist:cF {
- g_leporello_box_ \prop_item:Nn \g_leporello_box_names_prop {#1} _children_clist
+ g__leporello_box_ \prop_item:Nn \g__leporello_box_names_prop {#1} _children_clist
} {
\clist_new:c {
- g_leporello_box_ \prop_item:Nn \g_leporello_box_names_prop {#1} _children_clist
+ g__leporello_box_ \prop_item:Nn \g__leporello_box_names_prop {#1} _children_clist
}
}
\clist_gput_right:cV {
- g_leporello_box_ \prop_item:Nn \g_leporello_box_names_prop {#1} _children_clist
- } \g_leporello_box_int
- \clist_gput_right:NV \g_leporello_parent_boxes_clist \g_leporello_box_int
+ g__leporello_box_ \prop_item:Nn \g__leporello_box_names_prop {#1} _children_clist
+ } \g__leporello_box_int
+ \clist_gput_right:NV \g__leporello_child_boxes_clist \g__leporello_box_int
+ \prop_gput:cne { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
+ { parent ~ id } { \prop_item:Nn \g__leporello_box_names_prop {#1} }
} {
\msg_error:nnn { leporello } { parent-box-undefined } {#1}
}
@@ -212,11 +216,11 @@
offset .fp_set:N = \l__leporello_box_offset_fp ,
offset .initial:n = { 0mm , 0mm } ,
width .code:n = {
- \prop_gput:cne { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cne { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ width } {#1}
} ,
height .code:n = {
- \prop_gput:cne { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cne { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ height } {#1}
} ,
stretch .bool_set:N = \l__leporello_box_stretch_bool ,
@@ -271,46 +275,46 @@
}
\bool_new:N \l_leporello_image_fill_bleed_bool
-\bool_new:N \l_leporello_image_width_bool
-\bool_new:N \l_leporello_image_height_bool
-\bool_new:N \l_leporello_image_clip_width_bool
-\bool_new:N \l_leporello_image_clip_height_bool
\dim_new:N \l_leporello_image_width_dim
\dim_new:N \l_leporello_image_height_dim
\dim_new:N \l_leporello_image_clip_width_dim
\dim_new:N \l_leporello_image_clip_height_dim
-\dim_new:N \l_leporello_image_offset_x_dim
-\dim_new:N \l_leporello_image_offset_y_dim
-\dim_new:N \l_leporello_image_outer_offset_left_dim
-\dim_new:N \l_leporello_image_outer_offset_right_dim
-\dim_new:N \l_leporello_image_outer_offset_top_dim
-\dim_new:N \l_leporello_image_outer_offset_bottom_dim
\fp_new:N \l_leporello_image_scale_fp
-\clist_new:N \l_leporello_image_options_clist
+
+\bool_new:N \l__leporello_image_width_bool
+\bool_new:N \l__leporello_image_height_bool
+\bool_new:N \l__leporello_image_clip_width_bool
+\bool_new:N \l__leporello_image_clip_height_bool
+\dim_new:N \l__leporello_image_offset_x_dim
+\dim_new:N \l__leporello_image_offset_y_dim
+\dim_new:N \l__leporello_image_outer_offset_left_dim
+\dim_new:N \l__leporello_image_outer_offset_right_dim
+\dim_new:N \l__leporello_image_outer_offset_top_dim
+\dim_new:N \l__leporello_image_outer_offset_bottom_dim
\box_new:N \l__leporello_image_original_box
\keys_define:nn { leporello / image } {
width .code:n = {
- \bool_set_true:N \l_leporello_image_width_bool
+ \bool_set_true:N \l__leporello_image_width_bool
\dim_set:Nn \l_leporello_image_width_dim {#1}
} ,
height .code:n = {
- \bool_set_true:N \l_leporello_image_height_bool
+ \bool_set_true:N \l__leporello_image_height_bool
\dim_set:Nn \l_leporello_image_height_dim {#1}
} ,
clip ~ width .code:n = {
- \bool_set_true:N \l_leporello_image_clip_width_bool
+ \bool_set_true:N \l__leporello_image_clip_width_bool
\dim_set:Nn \l_leporello_image_clip_width_dim {#1}
} ,
clip ~ height .code:n = {
- \bool_set_true:N \l_leporello_image_clip_height_bool
+ \bool_set_true:N \l__leporello_image_clip_height_bool
\dim_set:Nn \l_leporello_image_clip_height_dim {#1}
} ,
offset .code:n = {
- \dim_set:Nn \l_leporello_image_offset_x_dim {
+ \dim_set:Nn \l__leporello_image_offset_x_dim {
\leporello_fp_tuple_use_i:n {#1}
}
- \dim_set:Nn \l_leporello_image_offset_y_dim {
+ \dim_set:Nn \l__leporello_image_offset_y_dim {
- \leporello_fp_tuple_use_ii:n {#1}
}
} ,
@@ -345,7 +349,7 @@
\tex_bodydir:D TLT
\tex_pardir:D TLT
\tex_textdir:D TLT
- \tex_relax:D
+ \scan_stop:
\hook_gput_code:nnn { leporello / box / begin } {
. / layout
} {
@@ -352,7 +356,7 @@
\tex_bodydir:D TRT
\tex_pardir:D TRT
\tex_textdir:D TRT
- \tex_relax:D
+ \scan_stop:
}
}
{ 2 } {
@@ -361,7 +365,7 @@
\tex_bodydir:D TLT
\tex_pardir:D TLT
\tex_textdir:D TLT
- \tex_relax:D
+ \scan_stop:
\hook_gput_code:nnn { leporello / box / begin } {
. / layout
} {
@@ -368,7 +372,7 @@
\tex_bodydir:D LTL
\tex_pardir:D LTL
\tex_textdir:D LTL
- \tex_relax:D
+ \scan_stop:
}
}
{ 3 } {
@@ -380,7 +384,7 @@
\tex_bodydir:D TLT
\tex_pardir:D TLT
\tex_textdir:D TLT
- \tex_relax:D
+ \scan_stop:
\hook_gput_code:nnn { leporello / box / begin } {
. / layout
} {
@@ -387,7 +391,7 @@
\tex_bodydir:D RTT
\tex_pardir:D RTT
\tex_textdir:D RTT
- \tex_relax:D
+ \scan_stop:
}
}
} {
@@ -422,7 +426,7 @@
#2
\draw_end:
\tex_par:D
- \tex_vfil:D
+ \skip_vertical:n { 0pt plus 1fill }
\tex_penalty:D -10000
}
@@ -501,7 +505,7 @@
\leoprello_graphics_use:nn { } {#2}
}
- \bool_if:NF \l_leporello_image_clip_width_bool {
+ \bool_if:NF \l__leporello_image_clip_width_bool {
\dim_set:Nn \l_leporello_image_clip_width_dim {
\fp_to_dim:n {
\l_leporello_image_scale_fp *
@@ -509,7 +513,7 @@
}
}
}
- \bool_if:NF \l_leporello_image_clip_height_bool {
+ \bool_if:NF \l__leporello_image_clip_height_bool {
\dim_set:Nn \l_leporello_image_clip_height_dim {
\fp_to_dim:n {
\l_leporello_image_scale_fp *
@@ -517,13 +521,13 @@
}
}
}
- \bool_if:NT \l_leporello_image_width_bool {
+ \bool_if:NT \l__leporello_image_width_bool {
\fp_set:Nn \l_leporello_image_scale_fp {
\l_leporello_image_width_dim /
\box_wd:N \l__leporello_image_original_box
}
}
- \bool_if:NT \l_leporello_image_height_bool {
+ \bool_if:NT \l__leporello_image_height_bool {
\fp_set:Nn \l_leporello_image_scale_fp {
\l_leporello_image_height_dim /
\box_ht:N \l__leporello_image_original_box
@@ -531,50 +535,50 @@
}
\clist_if_in:NnT \l_leporello_image_ignore_padding_clist { l } {
- \dim_add:Nn \l_leporello_image_outer_offset_left_dim {
+ \dim_add:Nn \l__leporello_image_outer_offset_left_dim {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { padding ~ left }
}
\dim_add:Nn \l_leporello_image_clip_width_dim {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { padding ~ left }
}
- \skip_add:Nn \tex_hfuzz:D {
+ \dim_add:Nn \tex_hfuzz:D {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { padding ~ left }
}
}
\clist_if_in:NnT \l_leporello_image_ignore_padding_clist { r } {
- \dim_add:Nn \l_leporello_image_outer_offset_right_dim {
+ \dim_add:Nn \l__leporello_image_outer_offset_right_dim {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { padding ~ right }
}
\dim_add:Nn \l_leporello_image_clip_width_dim {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { padding ~ right }
}
- \skip_add:Nn \tex_hfuzz:D {
+ \dim_add:Nn \tex_hfuzz:D {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { padding ~ right }
}
}
\clist_if_in:NnT \l_leporello_image_ignore_padding_clist { t } {
- \dim_add:Nn \l_leporello_image_outer_offset_top_dim {
+ \dim_add:Nn \l__leporello_image_outer_offset_top_dim {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { padding ~ top }
}
}
\clist_if_in:NnT \l_leporello_image_ignore_padding_clist { b } {
- \dim_add:Nn \l_leporello_image_outer_offset_bottom_dim {
+ \dim_add:Nn \l__leporello_image_outer_offset_bottom_dim {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { padding ~ bottom }
}
}
@@ -585,10 +589,10 @@
} = { 1 } {
\clist_if_in:enT {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { bleed }
} { l } {
- \dim_add:Nn \l_leporello_image_outer_offset_left_dim {
+ \dim_add:Nn \l__leporello_image_outer_offset_left_dim {
\l_leporello_bleed_dim
}
\dim_add:Nn \l_leporello_image_clip_width_dim {
@@ -601,10 +605,10 @@
} = { \l_leporello_column_count_int } {
\clist_if_in:enT {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { bleed }
} { r } {
- \dim_add:Nn \l_leporello_image_outer_offset_right_dim {
+ \dim_add:Nn \l__leporello_image_outer_offset_right_dim {
\l_leporello_bleed_dim
}
\dim_add:Nn \l_leporello_image_clip_width_dim {
@@ -614,10 +618,10 @@
}
\clist_if_in:enT {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { bleed }
} { t } {
- \dim_add:Nn \l_leporello_image_outer_offset_top_dim {
+ \dim_add:Nn \l__leporello_image_outer_offset_top_dim {
\l_leporello_bleed_dim
}
\dim_add:Nn \l_leporello_image_clip_height_dim {
@@ -626,10 +630,10 @@
}
\clist_if_in:enT {
\prop_item:cn {
- g_leporello_box_ \int_use:N \l_leporello_current_box_int _prop
+ g__leporello_box_ \int_use:N \l_leporello_current_box_int _prop
} { bleed }
} { b } {
- \dim_add:Nn \l_leporello_image_outer_offset_bottom_dim {
+ \dim_add:Nn \l__leporello_image_outer_offset_bottom_dim {
\l_leporello_bleed_dim
}
\dim_add:Nn \l_leporello_image_clip_height_dim {
@@ -638,7 +642,7 @@
}
}
- \dim_add:Nn \l_leporello_image_offset_y_dim {
+ \dim_add:Nn \l__leporello_image_offset_y_dim {
\fp_to_dim:n {
\l_leporello_image_scale_fp *
\box_ht:N \l__leporello_image_original_box -
@@ -646,8 +650,8 @@
}
}
- \skip_vertical:n { - \l_leporello_image_outer_offset_top_dim }
- \skip_horizontal:n { - \l_leporello_image_outer_offset_left_dim }
+ \skip_vertical:n { - \l__leporello_image_outer_offset_top_dim }
+ \skip_horizontal:n { - \l__leporello_image_outer_offset_left_dim }
\leoprello_graphics_use:nn {
scale = \fp_to_decimal:N \l_leporello_image_scale_fp ,
clip ,
@@ -654,13 +658,13 @@
viewport =
\dim_to_decimal_in_bp:n {
\fp_to_dim:n {
- \l_leporello_image_offset_x_dim /
+ \l__leporello_image_offset_x_dim /
\l_leporello_image_scale_fp
}
} ~
\dim_to_decimal_in_bp:n {
\fp_to_dim:n {
- \l_leporello_image_offset_y_dim /
+ \l__leporello_image_offset_y_dim /
\l_leporello_image_scale_fp
}
} ~
@@ -668,7 +672,7 @@
\fp_to_dim:n {
(
\l_leporello_image_clip_width_dim +
- \l_leporello_image_offset_x_dim
+ \l__leporello_image_offset_x_dim
) / \l_leporello_image_scale_fp
}
} ~
@@ -676,17 +680,17 @@
\fp_to_dim:n {
(
\l_leporello_image_clip_height_dim +
- \l_leporello_image_offset_y_dim
+ \l__leporello_image_offset_y_dim
) / \l_leporello_image_scale_fp
}
}
} {#2}
- \skip_horizontal:n { - \l_leporello_image_outer_offset_right_dim }
- \skip_vertical:n { - \l_leporello_image_outer_offset_bottom_dim }
+ \skip_horizontal:n { - \l__leporello_image_outer_offset_right_dim }
+ \skip_vertical:n { - \l__leporello_image_outer_offset_bottom_dim }
\group_end:
}
-\cs_new:Npn \__leporello_flow_split_use_i:w
+\cs_new:Npn \__leporello_flow_split_use_i:w
#1 \leporelloboxbreak #2 \q_stop {#1}
\cs_new:Npn \__leporello_flow_split_use_i:n #1 {
\__leporello_flow_split_use_i:w #1 \q_stop
@@ -693,7 +697,7 @@
}
\cs_generate_variant:Nn \__leporello_flow_split_use_i:n { e }
-\cs_new:Npn \__leporello_flow_split_use_ii:w
+\cs_new:Npn \__leporello_flow_split_use_ii:w
#1 \leporelloboxbreak #2 \q_stop {#2}
\cs_new:Npn \__leporello_flow_split_use_ii:n #1 {
\__leporello_flow_split_use_ii:w #1 \q_stop
@@ -701,36 +705,36 @@
\cs_generate_variant:Nn \__leporello_flow_split_use_ii:n { e }
\cs_new_protected:Npn \__leporello_box_break_flow:n #1 {
- \prop_if_in:cnT { g_leporello_box_ #1 _prop } { name } {
+ \prop_if_in:cnT { g__leporello_box_ #1 _prop } { name } {
\tl_if_exist:cT {
- g_leporello_box_ \prop_item:cn { g_leporello_box_ #1 _prop } { name } _tl
+ g__leporello_box_ \prop_item:cn { g__leporello_box_ #1 _prop } { name } _tl
} {
- \tl_gput_left:cn { g_leporello_box_ #1 _tl } {
+ \tl_gput_left:cn { g__leporello_box_ #1 _tl } {
\tl_use:c {
- g_leporello_box_ \prop_item:cn { g_leporello_box_ #1 _prop } { name } _tl
+ g__leporello_box_ \prop_item:cn { g__leporello_box_ #1 _prop } { name } _tl
}
}
}
}
- \prop_if_in:cnT { g_leporello_box_ #1 _prop } { flow ~ into } {
+ \prop_if_in:cnT { g__leporello_box_ #1 _prop } { flow ~ into } {
\str_set:Ne \l_leporello_box_flow_into_str {
- \prop_item:cn { g_leporello_box_ #1 _prop } { flow ~ into }
+ \prop_item:cn { g__leporello_box_ #1 _prop } { flow ~ into }
}
\box_new:c {
- g_leporello_box_flow_ \str_use:N \l_leporello_box_flow_into_str _box
+ g__leporello_box_flow_ \str_use:N \l_leporello_box_flow_into_str _box
}
- \tl_if_exist:cF { g_leporello_box_ \str_use:N \l_leporello_box_flow_into_str _tl } {
- \tl_new:c { g_leporello_box_ \str_use:N \l_leporello_box_flow_into_str _tl }
+ \tl_if_exist:cF { g__leporello_box_ \str_use:N \l_leporello_box_flow_into_str _tl } {
+ \tl_new:c { g__leporello_box_ \str_use:N \l_leporello_box_flow_into_str _tl }
}
- \tl_if_in:cnTF { g_leporello_box_ #1 _tl } {
+ \tl_if_in:cnTF { g__leporello_box_ #1 _tl } {
\leporelloboxbreak
} {
- \vbox_gset_top:Nn \g_leporello_box_flow_temp_box {
- \prop_item:cn { g_leporello_box_ #1 _prop } { pre }
+ \vbox_gset_top:Nn \g__leporello_box_flow_temp_box {
+ \prop_item:cn { g__leporello_box_ #1 _prop } { pre }
\__leporello_flow_split_use_i:e {
- \tl_use:c { g_leporello_box_ #1 _tl }
+ \tl_use:c { g__leporello_box_ #1 _tl }
}
\group_begin:
\skip_zero:N \tex_parfillskip:D
@@ -737,26 +741,26 @@
\tex_par:D
\group_end:
}
- \tl_gput_left:ce { g_leporello_box_ \str_use:N \l_leporello_box_flow_into_str _tl } {
- \prop_item:cn { g_leporello_box_ #1 _prop } { pre }
+ \tl_gput_left:ce { g__leporello_box_ \str_use:N \l_leporello_box_flow_into_str _tl } {
+ \prop_item:cn { g__leporello_box_ #1 _prop } { pre }
\tex_noindent:D
\__leporello_flow_split_use_ii:e {
- \tl_use:c { g_leporello_box_ #1 _tl }
+ \tl_use:c { g__leporello_box_ #1 _tl }
}
\tex_par:D
}
- \tl_gclear:c { g_leporello_box_ #1 _tl }
+ \tl_gclear:c { g__leporello_box_ #1 _tl }
} {
\vbox_gset_top:cn {
- g_leporello_box_flow_ \str_use:N \l_leporello_box_flow_into_str _box
+ g__leporello_box_flow_ \str_use:N \l_leporello_box_flow_into_str _box
} {
- \tl_use:c { g_leporello_box_ #1 _tl }
+ \tl_use:c { g__leporello_box_ #1 _tl }
}
- \tl_clear:c { g_leporello_box_ #1 _tl }
+ \tl_clear:c { g__leporello_box_ #1 _tl }
\group_begin:
\skip_zero:N \tex_splittopskip:D
- \vbox_gset_split_to_ht:Ncn \g_leporello_box_flow_temp_box {
- g_leporello_box_flow_ \str_use:N \l_leporello_box_flow_into_str _box
+ \vbox_gset_split_to_ht:Ncn \g__leporello_box_flow_temp_box {
+ g__leporello_box_flow_ \str_use:N \l_leporello_box_flow_into_str _box
} {
\bool_lazy_or:nnTF {
\l_leporello_layout_vertical_ltr_bool
@@ -763,71 +767,124 @@
} {
\l_leporello_layout_vertical_rtl_bool
} {
- \prop_if_in:cnTF { g_leporello_box_ #1 _prop } { width } {
- \prop_item:cn { g_leporello_box_ #1 _prop } { width }
+ \prop_if_in:cnTF { g__leporello_box_ #1 _prop } { width } {
+ \prop_item:cn { g__leporello_box_ #1 _prop } { width }
} {
\clist_item:Nn \l_leporello_columns_clist {
\int_use:N \l_leporello_current_column_int
}
} -
- \prop_item:cn { g_leporello_box_ #1 _prop } { padding ~ left } -
- \prop_item:cn { g_leporello_box_ #1 _prop } { padding ~ right }
+ \prop_item:cn { g__leporello_box_ #1 _prop } { padding ~ left } -
+ \prop_item:cn { g__leporello_box_ #1 _prop } { padding ~ right }
} {
- \prop_if_in:cnTF { g_leporello_box_ #1 _prop } { height } {
- \prop_item:cn { g_leporello_box_ #1 _prop } { height }
+ \prop_if_in:cnTF { g__leporello_box_ #1 _prop } { height } {
+ \prop_item:cn { g__leporello_box_ #1 _prop } { height }
} {
\l_leporello_layout_height_dim
} -
- \prop_item:cn { g_leporello_box_ #1 _prop } { padding ~ top } -
- \prop_item:cn { g_leporello_box_ #1 _prop } { padding ~ bottom }
+ \prop_item:cn { g__leporello_box_ #1 _prop } { padding ~ top } -
+ \prop_item:cn { g__leporello_box_ #1 _prop } { padding ~ bottom }
}
}
\group_end:
- \tl_gput_left:ce { g_leporello_box_ \str_use:N \l_leporello_box_flow_into_str _tl } {
+ \tl_gput_left:ce { g__leporello_box_ \str_use:N \l_leporello_box_flow_into_str _tl } {
\exp_not:N \box_use_drop:c {
- g_leporello_box_flow_ \str_use:N \l_leporello_box_flow_into_str _box
+ g__leporello_box_flow_ \str_use:N \l_leporello_box_flow_into_str _box
}
}
}
\vbox_top:n {
- \vbox_unpack_drop:N \g_leporello_box_flow_temp_box
+ \vbox_unpack_drop:N \g__leporello_box_flow_temp_box
}
}
}
+\cs_new_protected:Npn \__leporello_box_update_poles:nnn #1#2#3 {
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #3 _prop } { bleed }
+ } { l } {
+ \int_compare:nNnT {#2} = { 1 } {
+ \coffin_gset_vertical_pole:cnn {
+ g__leporello_box_ #1 _ #2 _ #3 _outer_coffin
+ } { l } {
+ \l_leporello_bleed_dim
+ }
+ }
+ }
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #3 _prop } { bleed }
+ } { r } {
+ \int_compare:nNnT {#2} = { \l_leporello_column_count_int } {
+ \coffin_gset_vertical_pole:cnn {
+ g__leporello_box_ #1 _ #2 _ #3 _outer_coffin
+ } { r } {
+ \coffin_wd:c {
+ g__leporello_box_ #1 _ #2 _ #3 _outer_coffin
+ } -
+ \l_leporello_bleed_dim
+ }
+ }
+ }
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #3 _prop } { bleed }
+ } { t } {
+ \coffin_gset_horizontal_pole:cnn {
+ g__leporello_box_ #1 _ #2 _ #3 _outer_coffin
+ } { t } {
+ \coffin_ht:c {
+ g__leporello_box_ #1 _ #2 _ #3 _outer_coffin
+ } -
+ \l_leporello_bleed_dim
+ }
+ }
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #3 _prop } { bleed }
+ } { b } {
+ \coffin_gset_horizontal_pole:cnn {
+ g__leporello_box_ #1 _ #2 _ #3 _outer_coffin
+ } { b } {
+ - \coffin_dp:c {
+ g__leporello_box_ #1 _ #2 _ #3 _outer_coffin
+ } +
+ \l_leporello_bleed_dim
+ }
+ }
+}
+\cs_generate_variant:Nn \__leporello_box_update_poles:nnn { VVn }
+
\cs_new_protected:Npn \__leporello_box_construct:nnn #1#2#3 {
- \coffin_if_exist:cF { g_leporello_box_ #1 _ #2 _ #3 _outer_coffin } {
- \dim_set:Nn \l_leporello_typeset_box_width_inner_dim {
+ \coffin_if_exist:cF { g__leporello_box_ #1 _ #2 _ #3 _outer_coffin } {
+ \dim_set:Nn \l__leporello_typeset_box_width_inner_dim {
\bool_lazy_or:nnTF {
\l_leporello_layout_vertical_ltr_bool
} {
\l_leporello_layout_vertical_rtl_bool
} {
- \prop_if_in:cnTF { g_leporello_box_ #3 _prop } { height } {
- \prop_item:cn { g_leporello_box_ #3 _prop } { height }
+ \prop_if_in:cnTF { g__leporello_box_ #3 _prop } { height } {
+ \prop_item:cn { g__leporello_box_ #3 _prop } { height }
} {
\l_leporello_layout_height_dim
} -
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ top } -
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ bottom }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ top } -
+ \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ bottom }
} {
- \prop_if_in:cnTF { g_leporello_box_ #3 _prop } { width } {
- \prop_item:cn { g_leporello_box_ #3 _prop } { width }
+ \prop_if_in:cnTF { g__leporello_box_ #3 _prop } { width } {
+ \prop_item:cn { g__leporello_box_ #3 _prop } { width }
} {
\clist_item:Nn \l_leporello_columns_clist {#2}
} -
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ left } -
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ right }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ left } -
+ \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ right }
}
}
\coffin_new:c {
- g_leporello_box_ #1 _ #2 _ #3 _inner_coffin
+ g__leporello_box_ #1 _ #2 _ #3 _inner_coffin
}
\vcoffin_gset:cnn {
- g_leporello_box_ #1 _ #2 _ #3 _inner_coffin
+ g__leporello_box_ #1 _ #2 _ #3 _inner_coffin
} {
- \l_leporello_typeset_box_width_inner_dim
+ \l__leporello_typeset_box_width_inner_dim
} {
\draw_suspend_begin:
\int_set:Nn \l_leporello_current_box_int {#3}
@@ -834,15 +891,15 @@
\hook_use:n { leporello / box / begin }
\__leporello_box_break_flow:n {#3}
\vbox_top:n {
- \tl_use:c { g_leporello_box_ #3 _tl }
+ \tl_use:c { g__leporello_box_ #3 _tl }
}
\hook_use:n { leporello / box / end }
\draw_suspend_end:
}
- \dim_set:Nn \l_leporello_typeset_box_width_dim {
- \prop_if_in:cnTF { g_leporello_box_ #3 _prop } { width } {
- \prop_item:cn { g_leporello_box_ #3 _prop } { width }
+ \dim_set:Nn \l__leporello_typeset_box_width_dim {
+ \prop_if_in:cnTF { g__leporello_box_ #3 _prop } { width } {
+ \prop_item:cn { g__leporello_box_ #3 _prop } { width }
} {
\bool_lazy_or:nnTF {
\l_leporello_layout_vertical_ltr_bool
@@ -850,10 +907,10 @@
\l_leporello_layout_vertical_rtl_bool
} {
\coffin_wd:c {
- g_leporello_box_ #1 _ #2 _ #3 _inner_coffin
+ g__leporello_box_ #1 _ #2 _ #3 _inner_coffin
} +
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ left } +
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ right }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ left } +
+ \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ right }
} {
\clist_item:Nn \l_leporello_columns_clist {#2}
}
@@ -860,48 +917,58 @@
}
}
- \dim_set:Nn \l_leporello_typeset_box_height_dim {
- \prop_if_in:cnTF { g_leporello_box_ #3 _prop } { height } {
- \prop_item:cn { g_leporello_box_ #3 _prop } { height }
+ \dim_set:Nn \l__leporello_typeset_box_height_dim {
+ \prop_if_in:cnTF { g__leporello_box_ #3 _prop } { height } {
+ \prop_item:cn { g__leporello_box_ #3 _prop } { height }
} {
\coffin_ht:c {
- g_leporello_box_ #1 _ #2 _ #3 _inner_coffin
+ g__leporello_box_ #1 _ #2 _ #3 _inner_coffin
} +
\coffin_dp:c {
- g_leporello_box_ #1 _ #2 _ #3 _inner_coffin
+ g__leporello_box_ #1 _ #2 _ #3 _inner_coffin
} +
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ top } +
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ bottom }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ top } +
+ \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ bottom }
}
}
- \bool_if:nT { \prop_item:cn { g_leporello_box_ #3 _prop } { stretch } } {
+ \bool_if:nT { \prop_item:cn { g__leporello_box_ #3 _prop } { stretch } } {
\bool_lazy_or:nnTF {
\l_leporello_layout_vertical_ltr_bool
} {
\l_leporello_layout_vertical_rtl_bool
} {
- \dim_set:Nn \l_leporello_typeset_box_width_dim {
+ \__leporello_box_calculate_stretch_x:Nn
+ \l__leporello_typeset_box_stretch_x_dim {#3}
+ \dim_set:Nn \l__leporello_typeset_box_width_dim {
\fp_to_dim:n {
\clist_item:Nn \l_leporello_columns_clist {#2} -
(
\leporello_fp_tuple_use_i:e {
- \prop_item:cn { g_leporello_box_ #3 _prop } { offset }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { offset }
}
)
}
}
+ \dim_add:Nn \l__leporello_typeset_box_width_dim {
+ \l__leporello_typeset_box_stretch_x_dim
+ }
} {
- \dim_set:Nn \l_leporello_typeset_box_height_dim {
+ \__leporello_box_calculate_stretch_y:Nn
+ \l__leporello_typeset_box_stretch_y_dim {#3}
+ \dim_set:Nn \l__leporello_typeset_box_height_dim {
\fp_to_dim:n {
\l_leporello_layout_height_dim -
(
\leporello_fp_tuple_use_ii:e {
- \prop_item:cn { g_leporello_box_ #3 _prop } { offset }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { offset }
}
)
}
}
+ \dim_add:Nn \l__leporello_typeset_box_height_dim {
+ \l__leporello_typeset_box_stretch_y_dim
+ }
}
}
@@ -910,7 +977,7 @@
\int_compare:nNnT {#2} = { 1 } {
\clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #3 _prop } { bleed }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { bleed }
} { l } {
\dim_add:Nn \l__leporello_typeset_box_bleed_x_dim { \l_leporello_bleed_dim }
}
@@ -917,57 +984,60 @@
}
\int_compare:nNnT {#2} = { \l_leporello_column_count_int } {
\clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #3 _prop } { bleed }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { bleed }
} { r } {
\dim_add:Nn \l__leporello_typeset_box_bleed_x_dim { \l_leporello_bleed_dim }
}
}
- \skip_set:Nn \tex_hfuzz:D { \l__leporello_typeset_box_bleed_x_dim }
+ \dim_add:Nn \tex_hfuzz:D { \l__leporello_typeset_box_bleed_x_dim }
\clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #3 _prop } { bleed }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { bleed }
} { t } {
\dim_add:Nn \l__leporello_typeset_box_bleed_y_dim { \l_leporello_bleed_dim }
}
\clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #3 _prop } { bleed }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { bleed }
} { b } {
\dim_add:Nn \l__leporello_typeset_box_bleed_y_dim { \l_leporello_bleed_dim }
}
- \skip_set:Nn \tex_vfuzz:D { \l__leporello_typeset_box_bleed_y_dim }
+ \dim_add:Nn \tex_vfuzz:D { \l__leporello_typeset_box_bleed_y_dim }
\coffin_new:c {
- g_leporello_box_ #1 _ #2 _ #3 _outer_coffin
+ g__leporello_box_ #1 _ #2 _ #3 _outer_coffin
}
\vcoffin_gset:cnn {
- g_leporello_box_ #1 _ #2 _ #3 _outer_coffin
- } { \l_leporello_typeset_box_width_dim } {
+ g__leporello_box_ #1 _ #2 _ #3 _outer_coffin
+ } {
+ \l__leporello_typeset_box_width_dim +
+ \l__leporello_typeset_box_bleed_x_dim
+ } {
\draw_suspend_begin:
\draw_begin:
\draw_path_rectangle:nn { 0mm , 0mm } {
- \l_leporello_typeset_box_width_dim +
+ \l__leporello_typeset_box_width_dim +
\l__leporello_typeset_box_bleed_x_dim ,
- \l_leporello_typeset_box_height_dim +
+ \l__leporello_typeset_box_height_dim +
\l__leporello_typeset_box_bleed_y_dim
}
\str_if_eq:enF {
- \prop_item:cn { g_leporello_box_ #3 _prop } { background ~ color }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { background ~ color }
} { none } {
\group_begin:
\color_select:e {
- \prop_item:cn { g_leporello_box_ #3 _prop } { background ~ color }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { background ~ color }
}
\draw_path_use:n { fill }
\group_end:
}
\draw_path_use_clear:n { clip }
- \prop_if_in:cnT { g_leporello_box_ #3 _prop } { background ~ code } {
+ \prop_if_in:cnT { g__leporello_box_ #3 _prop } { background ~ code } {
\vbox_set_top:Ne \l__leporello_box_background_box {
- \prop_item:cn { g_leporello_box_ #3 _prop } { background ~ code }
+ \prop_item:cn { g__leporello_box_ #3 _prop } { background ~ code }
}
\draw_box_use:Nn \l__leporello_box_background_box {
0mm ,
- \l_leporello_typeset_box_height_dim +
+ \l__leporello_typeset_box_height_dim +
\l__leporello_typeset_box_bleed_y_dim -
\box_ht:N \l__leporello_box_background_box
}
@@ -976,157 +1046,287 @@
\draw_suspend_end:
}
- \tl_if_exist:cT { c_leporello_box_ #3 _store_width_tl } {
+ \__leporello_box_update_poles:nnn {#1} {#2} {#3}
+
+ \tl_if_exist:cT { c__leporello_box_ #3 _store_width_tl } {
\exp_args:NNo \exp_args:No
- \dim_set_eq:NN { \use:c { c_leporello_box_ #3 _store_width_tl } }
- \l_leporello_typeset_box_width_dim
+ \dim_set_eq:NN { \use:c { c__leporello_box_ #3 _store_width_tl } }
+ \l__leporello_typeset_box_width_dim
}
- \tl_if_exist:cT { c_leporello_box_ #3 _store_height_tl } {
+ \tl_if_exist:cT { c__leporello_box_ #3 _store_height_tl } {
\exp_args:NNo \exp_args:No
- \dim_set_eq:NN { \use:c { c_leporello_box_ #3 _store_height_tl } }
- \l_leporello_typeset_box_height_dim
+ \dim_set_eq:NN { \use:c { c__leporello_box_ #3 _store_height_tl } }
+ \l__leporello_typeset_box_height_dim
}
\bool_if:NT \l_leporello_show_id_bool {
- \hcoffin_set:Nn \l_leporello_typeset_mark_coffin {
+ \hcoffin_set:Nn \l__leporello_typeset_mark_coffin {
\__leporello_id_mark:n { #3 }
}
\coffin_attach:cnnNnnnn {
- g_leporello_box_
- \int_use:N \l_leporello_current_page_int _
- \int_use:N \l_leporello_current_column_int _
- #3 _inner_coffin
- } { hc } { vc }
- \l_leporello_typeset_mark_coffin
+ g__leporello_box_ #1 _ #2 _ #3 _inner_coffin
+ } { hc } { vc }
+ \l__leporello_typeset_mark_coffin
{ hc } { vc } { 0pt } { 0pt }
}
- \__leporello_box_set_bleed:n {#3}
-
\coffin_attach:cencennn {
- g_leporello_box_
- \int_use:N \l_leporello_current_page_int _
- \int_use:N \l_leporello_current_column_int _
- #3 _outer_coffin
+ g__leporello_box_ #1 _ #2 _ #3 _outer_coffin
} {
\bool_if:NTF \l_leporello_layout_vertical_rtl_bool { r } { l }
} { t } {
- g_leporello_box_
- \int_use:N \l_leporello_current_page_int _
- \int_use:N \l_leporello_current_column_int _
- #3 _inner_coffin
+ g__leporello_box_ #1 _ #2 _ #3 _inner_coffin
} {
\bool_if:NTF \l_leporello_layout_vertical_rtl_bool { r } { l }
} { t } {
\bool_if:NTF \l_leporello_layout_vertical_rtl_bool {
- \fp_to_dim:n {
- (
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ right } +
- \l__leporello_typeset_box_bleed_left_dim
- ) * -1
+ \dim_eval:n {
+ - \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ right }
}
} {
- \fp_to_dim:n {
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ left } +
- \l__leporello_typeset_box_bleed_left_dim
+ \dim_eval:n {
+ \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ left }
}
}
} {
- \fp_to_dim:n {
- (
- \prop_item:cn { g_leporello_box_ #3 _prop } { padding ~ top } +
- \l__leporello_typeset_box_bleed_top_dim
- ) * -1
+ \dim_eval:n {
+ - \prop_item:cn { g__leporello_box_ #3 _prop } { padding ~ top }
}
}
+
+ \__leporello_box_update_poles:nnn {#1} {#2} {#3}
}
}
\cs_generate_variant:Nn \__leporello_box_construct:nnn { VVn }
-\cs_new:Npn \__leporello_box_set_bleed:n #1 {
- \dim_zero:N \l__leporello_typeset_box_bleed_left_dim
- \dim_zero:N \l__leporello_typeset_box_bleed_top_dim
+\cs_new_protected:Npn \__leporello_box_calculate_stretch_x_aux:Nn #1#2 {
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ parent }
+ } { hc } {
+ \dim_add:Nn #1 {
+ \box_wd:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
+ } / 2
+ }
+ }
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ parent }
+ } { r } {
+ \dim_add:Nn #1 {
+ \box_wd:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
+ }
+ }
+ }
- \int_compare:nNnT {
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ self }
+ } { hc } {
+ \dim_sub:Nn #1 {
+ \box_wd:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
+ } / 2
+ }
+ }
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ self }
+ } { r } {
+ \dim_sub:Nn #1 {
+ \box_wd:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
+ }
+ }
+ }
+
+ \int_compare:nNnF {
\l_leporello_current_column_int
} = { 1 } {
\clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #1 _prop } { bleed }
+ \prop_item:cn { g__leporello_box_
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id }
+ _prop } { bleed }
} { l } {
- \dim_add:Nn \l__leporello_typeset_box_bleed_left_dim { \l_leporello_bleed_dim }
+ \clist_if_in:enF {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ parent }
+ } { l } {
+ \dim_add:Nn #1 { \l_leporello_bleed_dim }
+ }
}
}
- \clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #1 _prop } { bleed }
- } { t } {
- \dim_add:Nn \l__leporello_typeset_box_bleed_top_dim { \l_leporello_bleed_dim }
+ \int_compare:nNnF {
+ \l_leporello_current_column_int
+ } = { \l_leporello_column_count_int } {
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id }
+ _prop } { bleed }
+ } { r } {
+ \clist_if_in:enF {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ parent }
+ } { r } {
+ \dim_add:Nn #1 { \l_leporello_bleed_dim }
+ }
+ }
}
+
+ \dim_add:Nn #1 {
+ \fp_to_dim:n {
+ \leporello_fp_tuple_use_i:e {
+ \prop_item:cn { g__leporello_box_
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id }
+ _prop } { offset }
+ }
+ }
+ }
}
-\cs_new_protected:Npn \__leporello_boxes_attach:nn #1#2 {
- \clist_if_in:enTF {
- \prop_item:cn { g_leporello_box_ #2 _prop } { align ~ self }
+\cs_new_protected:Npn \__leporello_box_calculate_stretch_y_aux:Nn #1#2 {
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ parent }
+ } { vc } {
+ \dim_sub:Nn #1 {
+ \box_ht:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
+ } / 2 +
+ \box_dp:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
+ } / 2
+ }
+ }
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ parent }
} { b } {
- \int_set:Nn \l__leporello_typeset_coffin_attach_align_int { 1 }
- \clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #2 _prop } { bleed }
- } { b } {
- \dim_add:Nn \l__leporello_typeset_box_bleed_top_dim {
- \l_leporello_bleed_dim
+ \dim_sub:Nn #1 {
+ \box_ht:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
+ } +
+ \box_dp:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
}
}
- \clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #2 _prop } { bleed }
- } { t } {
- \dim_sub:Nn \l__leporello_typeset_box_bleed_top_dim {
- \l_leporello_bleed_dim
+ }
+
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ self }
+ } { vc } {
+ \dim_sub:Nn #1 {
+ \box_ht:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
+ } / 2 +
+ \box_dp:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
+ } / 2
+ }
+ }
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ self }
+ } { b } {
+ \dim_sub:Nn #1 {
+ \box_ht:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
+ } +
+ \box_dp:c { g__leporello_box_
+ \int_use:N \l_leporello_current_page_int _
+ \int_use:N \l_leporello_current_column_int _
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id } _outer_coffin
}
}
- } {
- \int_set:Nn \l__leporello_typeset_coffin_attach_align_int { -1 }
}
- \prop_if_exist:cT { g_leporello_box_ #1 _prop } {
- \int_compare:nNnT {
- \l_leporello_current_column_int
- } = { 1 } {
- \clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #1 _prop } { bleed }
- } { l } {
- \dim_sub:Nn \l__leporello_typeset_box_bleed_left_dim {
- \l_leporello_bleed_dim
- }
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id }
+ _prop } { bleed }
+ } { t } {
+ \clist_if_in:enF {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ parent }
+ } { t } {
+ \dim_add:Nn #1 { \l_leporello_bleed_dim }
+ }
+ }
+ \clist_if_in:enT {
+ \prop_item:cn { g__leporello_box_
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id }
+ _prop } { bleed }
+ } { b } {
+ \clist_if_in:enF {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ parent }
+ } { b } {
+ \dim_add:Nn #1 { \l_leporello_bleed_dim }
+ }
+ }
+
+ \dim_add:Nn #1 {
+ \fp_to_dim:n {
+ \leporello_fp_tuple_use_ii:e {
+ \prop_item:cn { g__leporello_box_
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id }
+ _prop } { offset }
}
}
- \clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #2 _prop } { align ~ parent }
- } { t } {
- \clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #1 _prop } { bleed }
- } { t } {
- \dim_add:Nn \l__leporello_typeset_box_bleed_top_dim {
- \l_leporello_bleed_dim
- }
+ }
+}
+
+\cs_new_protected:Npn \__leporello_box_calculate_stretch_x:Nn #1#2 {
+ \clist_if_in:NnT \g__leporello_child_boxes_clist {#2} {
+ \__leporello_box_calculate_stretch_x:Ne #1 {
+ \prop_item:Nn \g__leporello_box_names_prop {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id }
}
}
- \clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #2 _prop } { align ~ parent }
- } { b } {
- \clist_if_in:enT {
- \prop_item:cn { g_leporello_box_ #1 _prop } { bleed }
- } { b } {
- \dim_add:Nn \l__leporello_typeset_box_bleed_top_dim {
- \l_leporello_bleed_dim
- }
+ \__leporello_box_calculate_stretch_x_aux:Nn #1 {#2}
+ }
+}
+\cs_generate_variant:Nn \__leporello_box_calculate_stretch_x:Nn { Ne }
+
+\cs_new_protected:Npn \__leporello_box_calculate_stretch_y:Nn #1#2 {
+ \clist_if_in:NnT \g__leporello_child_boxes_clist {#2} {
+ \__leporello_box_calculate_stretch_y:Ne #1 {
+ \prop_item:Nn \g__leporello_box_names_prop {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { parent ~ id }
}
}
+ \__leporello_box_calculate_stretch_y_aux:Nn #1 {#2}
}
+}
+\cs_generate_variant:Nn \__leporello_box_calculate_stretch_y:Nn { Ne }
+\cs_new_protected:Npn \__leporello_boxes_attach:nn #1#2 {
+ \clist_if_in:enTF {
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ self }
+ } { b } {
+ \int_set:Nn \l__leporello_typeset_coffin_attach_align_int { 1 }
+ } {
+ \int_set:Nn \l__leporello_typeset_coffin_attach_align_int { -1 }
+ }
+
\coffin_attach:ceeceeee {
\int_compare:nNnTF {#1} = { 0 } {
- l_leporello_current_column_coffin
+ l__leporello_current_column_coffin
} {
- g_leporello_box_
+ g__leporello_box_
\int_use:N \l_leporello_current_page_int _
\int_use:N \l_leporello_current_column_int _
#1 _outer_coffin
@@ -1133,47 +1333,52 @@
}
} {
\clist_item:en {
- \prop_item:cn { g_leporello_box_ #2 _prop } { align ~ parent }
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ parent }
} { 1 }
} {
\clist_item:en {
- \prop_item:cn { g_leporello_box_ #2 _prop } { align ~ parent }
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ parent }
} { 2 }
} {
- g_leporello_box_
+ g__leporello_box_
\int_use:N \l_leporello_current_page_int _
\int_use:N \l_leporello_current_column_int _
#2 _outer_coffin
} {
\clist_item:en {
- \prop_item:cn { g_leporello_box_ #2 _prop } { align ~ self }
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ self }
} { 1 }
} {
\clist_item:en {
- \prop_item:cn { g_leporello_box_ #2 _prop } { align ~ self }
+ \prop_item:cn { g__leporello_box_ #2 _prop } { align ~ self }
} { 2 }
} {
\fp_to_dim:n {
\leporello_fp_tuple_use_i:e {
- \prop_item:cn { g_leporello_box_ #2 _prop } { offset }
- } -
- \l__leporello_typeset_box_bleed_left_dim
+ \prop_item:cn { g__leporello_box_ #2 _prop } { offset }
+ }
}
} {
\fp_to_dim:n {
(
\leporello_fp_tuple_use_ii:e {
- \prop_item:cn { g_leporello_box_ #2 _prop } { offset }
- } -
- \l__leporello_typeset_box_bleed_top_dim
+ \prop_item:cn { g__leporello_box_ #2 _prop } { offset }
+ }
) * \l__leporello_typeset_coffin_attach_align_int
}
}
+
+ \int_compare:nNnF {#1} = { 0 } {
+ \__leporello_box_update_poles:VVn
+ \l_leporello_current_page_int
+ \l_leporello_current_column_int
+ {#1}
+ }
}
\cs_new_protected:Npn \__leporello_box_attach_children:n #1 {
- \clist_if_exist:cT { g_leporello_box_ #1 _children_clist } {
- \clist_map_inline:cn { g_leporello_box_ #1 _children_clist } {
+ \clist_if_exist:cT { g__leporello_box_ #1 _children_clist } {
+ \clist_map_inline:cn { g__leporello_box_ #1 _children_clist } {
\__leporello_box_construct:VVn
\l_leporello_current_page_int
\l_leporello_current_column_int
@@ -1180,8 +1385,7 @@
{##1}
\__leporello_box_attach_children:n {##1}
}
- \clist_map_inline:cn { g_leporello_box_ #1 _children_clist } {
- \__leporello_box_set_bleed:n {##1}
+ \clist_map_inline:cn { g__leporello_box_ #1 _children_clist } {
\__leporello_boxes_attach:nn {#1} {##1}
}
}
@@ -1188,12 +1392,12 @@
}
\cs_new_protected:Npn \__leporello_box_store:nn #1#2 {
- \tl_if_exist:cF { g_leporello_box_ #1 _tl } {
- \tl_new:c { g_leporello_box_ #1 _tl }
+ \tl_if_exist:cF { g__leporello_box_ #1 _tl } {
+ \tl_new:c { g__leporello_box_ #1 _tl }
}
- \tl_gput_right:cn { g_leporello_box_ #1 _tl } {
+ \tl_gput_right:cn { g__leporello_box_ #1 _tl } {
\int_set:Nn \l_leporello_current_box_int {#1}
- \prop_item:cn { g_leporello_box_ #1 _prop } { pre }
+ \prop_item:cn { g__leporello_box_ #1 _prop } { pre }
#2
}
}
@@ -1220,19 +1424,19 @@
\int_set:Nn \l_leporello_current_column_int {
\l_leporello_column_count_int
}
- \dim_zero:N \l_leporello_current_column_offset_dim
+ \dim_zero:N \l__leporello_current_column_offset_dim
\clist_map_inline:Nn \l_leporello_columns_clist {
- \dim_add:Nn \l_leporello_current_column_offset_dim {##1}
+ \dim_add:Nn \l__leporello_current_column_offset_dim {##1}
}
} {
\int_zero:N \l_leporello_current_column_int
- \dim_zero:N \l_leporello_current_column_offset_dim
+ \dim_zero:N \l__leporello_current_column_offset_dim
}
\leporello_draw_absolute:nn { 0mm , 0mm } {
\clist_map_inline:nn {#2} {
\bool_if:NTF \l_leporello_reverse_order_bool {
- \dim_sub:Nn \l_leporello_current_column_offset_dim {
+ \dim_sub:Nn \l__leporello_current_column_offset_dim {
\clist_item:NV \l_leporello_columns_clist
\l_leporello_current_column_int
}
@@ -1297,7 +1501,7 @@
}
}
- \vcoffin_set:Nnn \l_leporello_current_column_coffin {
+ \vcoffin_set:Nnn \l__leporello_current_column_coffin {
\clist_item:NV \l_leporello_columns_clist
\l_leporello_current_column_int
} {
@@ -1310,7 +1514,7 @@
}
\draw_path_use_clear:n { clip }
\str_if_eq:nnF {##1} { . } {
- \vbox_set_top:Nn \l_leporello_typeset_column_box {
+ \vbox_set_top:Nn \l__leporello_typeset_column_box {
\draw_suspend_begin:
\str_set:Nn \l_leporello_current_column_str {##1}
\hook_use:n { leporello / column / begin }
@@ -1318,7 +1522,7 @@
\hook_use:n { leporello / column / end }
\draw_suspend_end:
}
- \draw_box_use:N \l_leporello_typeset_column_box
+ \draw_box_use:N \l__leporello_typeset_column_box
}
\draw_end:
\draw_suspend_end:
@@ -1333,20 +1537,19 @@
\__leporello_box_attach_children:n {####1}
}
\clist_map_inline:cn { g_leporello_column_ ##1 _boxes_clist } {
- \clist_if_in:NnF \g_leporello_parent_boxes_clist {####1} {
- \__leporello_box_set_bleed:n {####1}
+ \clist_if_in:NnF \g__leporello_child_boxes_clist {####1} {
\__leporello_boxes_attach:nn { 0 } {####1}
}
}
}
- \draw_coffin_use:Nnnn \l_leporello_current_column_coffin
- { l } { t } { \l_leporello_current_column_offset_dim , 0mm }
+ \draw_coffin_use:Nnnn \l__leporello_current_column_coffin
+ { l } { t } { \l__leporello_current_column_offset_dim , 0mm }
\bool_if:NTF \l_leporello_reverse_order_bool {
\int_decr:N \l_leporello_current_column_int
} {
- \dim_add:Nn \l_leporello_current_column_offset_dim {
+ \dim_add:Nn \l__leporello_current_column_offset_dim {
\clist_item:NV \l_leporello_columns_clist
\l_leporello_current_column_int
}
@@ -1355,17 +1558,17 @@
\bool_if:NT \l_leporello_show_frames_bool {
\int_zero:N \l_leporello_current_column_int
- \dim_zero:N \l_leporello_current_column_offset_dim
+ \dim_zero:N \l__leporello_current_column_offset_dim
\clist_map_inline:Nn \l_leporello_columns_clist {
\int_incr:N \l_leporello_current_column_int
\draw_path_rectangle:nn {
- \l_leporello_current_column_offset_dim , 0mm
+ \l__leporello_current_column_offset_dim , 0mm
} {
##1 ,
- \l_leporello_layout_height_dim
}
\draw_path_use_clear:n { stroke }
- \dim_add:Nn \l_leporello_current_column_offset_dim {
+ \dim_add:Nn \l__leporello_current_column_offset_dim {
##1
}
}
@@ -1396,15 +1599,15 @@
}
\hook_gput_code:nnn { shipout / foreground } { . } {
\__leporello_cropmarks:
- \dim_set:Nn \l_leporello_current_column_offset_dim {
+ \dim_set:Nn \l__leporello_current_column_offset_dim {
\l_leporello_info_area_dim
}
- \__leporello_cropmarks:n { \l_leporello_current_column_offset_dim }
+ \__leporello_cropmarks:n { \l__leporello_current_column_offset_dim }
\clist_map_inline:Nn \l_leporello_columns_clist {
- \dim_add:Nn \l_leporello_current_column_offset_dim {
+ \dim_add:Nn \l__leporello_current_column_offset_dim {
#1
}
- \__leporello_cropmarks:n { \l_leporello_current_column_offset_dim }
+ \__leporello_cropmarks:n { \l__leporello_current_column_offset_dim }
}
}
} {
@@ -1414,33 +1617,31 @@
margin = 0pt
}
}
- \dim_set:Nn \tex_topskip:D { 0pt }
- \dim_set:Nn \tex_parindent:D { 0pt }
+ \skip_zero:N \tex_topskip:D
+ \dim_zero:N \tex_parindent:D
}
-\clist_new:N \l_leporello_auto_typeset_temp_clist
-
\hook_gput_code:nnn { enddocument } { . } {
\bool_if:NT \l_leporello_auto_typeset_bool {
- \int_zero:N \l_leporello_auto_typeset_int
- \clist_clear:N \l_leporello_auto_typeset_temp_clist
- \clist_map_inline:Nn \g_leporello_auto_typeset_clist {
+ \int_zero:N \l__leporello_auto_typeset_int
+ \clist_clear:N \l__leporello_auto_typeset_temp_clist
+ \clist_map_inline:Nn \g__leporello_auto_typeset_clist {
\int_compare:nNnTF {
- \l_leporello_auto_typeset_int
+ \l__leporello_auto_typeset_int
} < {
\l_leporello_column_count_int
} {
- \clist_put_right:Nn \l_leporello_auto_typeset_temp_clist {#1}
+ \clist_put_right:Nn \l__leporello_auto_typeset_temp_clist {#1}
} {
- \leporello_typeset_columns:nV { } \l_leporello_auto_typeset_temp_clist
- \clist_clear:N \l_leporello_auto_typeset_temp_clist
- \int_zero:N \l_leporello_auto_typeset_int
- \clist_put_right:Nn \l_leporello_auto_typeset_temp_clist {#1}
+ \leporello_typeset_columns:nV { } \l__leporello_auto_typeset_temp_clist
+ \clist_clear:N \l__leporello_auto_typeset_temp_clist
+ \int_zero:N \l__leporello_auto_typeset_int
+ \clist_put_right:Nn \l__leporello_auto_typeset_temp_clist {#1}
}
- \int_incr:N \l_leporello_auto_typeset_int
+ \int_incr:N \l__leporello_auto_typeset_int
}
- \clist_if_empty:NF \l_leporello_auto_typeset_temp_clist {
- \leporello_typeset_columns:nV { } \l_leporello_auto_typeset_temp_clist
+ \clist_if_empty:NF \l__leporello_auto_typeset_temp_clist {
+ \leporello_typeset_columns:nV { } \l__leporello_auto_typeset_temp_clist
}
}
}
@@ -1455,64 +1656,64 @@
#2
}
\bool_if:NT \l_leporello_auto_typeset_bool {
- \clist_gput_right:Nn \g_leporello_auto_typeset_clist {#1}
+ \clist_gput_right:Nn \g__leporello_auto_typeset_clist {#1}
}
} { }
\NewDocumentEnvironment { leporellobox } { O{} +b } {
\group_begin:
- \int_gincr:N \g_leporello_box_int
+ \int_gincr:N \g__leporello_box_int
\str_if_empty:NT \l_leporello_current_column_str {
\msg_error:nnV { leporello } { box-outside-column }
- \g_leporello_box_int
+ \g__leporello_box_int
}
\clist_gput_right:cV {
g_leporello_column_ \str_use:N \l_leporello_current_column_str _boxes_clist
- } \g_leporello_box_int
+ } \g__leporello_box_int
- \prop_new:c { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_new:c { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
\keys_set:nn { leporello / box } {#1}
- \prop_gput:cne { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cne { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ align ~ parent }
{ \clist_use:Nn \l__leporello_box_align_parent_clist { , } }
- \prop_gput:cne { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cne { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ align ~ self }
{ \clist_use:Nn \l__leporello_box_align_self_clist { , } }
- \prop_gput:cnV { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cnV { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ offset }
\l__leporello_box_offset_fp
- \prop_gput:cne { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cne { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ stretch }
{ \bool_if_p:N \l__leporello_box_stretch_bool }
- \prop_gput:cnV { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cnV { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ padding ~ left }
\l__leporello_box_padding_left_dim
- \prop_gput:cnV { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cnV { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ padding ~ right }
\l__leporello_box_padding_right_dim
- \prop_gput:cnV { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cnV { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ padding ~ top }
\l__leporello_box_padding_top_dim
- \prop_gput:cnV { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cnV { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ padding ~ bottom }
\l__leporello_box_padding_bottom_dim
- \prop_gput:cno { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cno { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ pre }
{ \l__leporello_box_pre_tl }
- \prop_gput:cnV { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cnV { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ background ~ color }
\l__leporello_box_background_color_tl
- \prop_gput:cno { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cno { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ background ~ code }
{ \l__leporello_box_background_code_tl }
- \prop_gput:cne { g_leporello_box_ \int_use:N \g_leporello_box_int _prop }
+ \prop_gput:cne { g__leporello_box_ \int_use:N \g__leporello_box_int _prop }
{ bleed }
{ \clist_use:Nn \l__leporello_box_bleed_clist { , } }
\tl_if_empty:NF \l__leporello_box_store_width_tl {
- \tl_const:co { c_leporello_box_ \int_use:N \g_leporello_box_int _store_width_tl } {
+ \tl_const:co { c__leporello_box_ \int_use:N \g__leporello_box_int _store_width_tl } {
\l__leporello_box_store_width_tl
}
\exp_args:No \tl_if_empty:NF { \l__leporello_box_store_width_tl } {
@@ -1520,7 +1721,7 @@
}
}
\tl_if_empty:NF \l__leporello_box_store_height_tl {
- \tl_const:co { c_leporello_box_ \int_use:N \g_leporello_box_int _store_height_tl } {
+ \tl_const:co { c__leporello_box_ \int_use:N \g__leporello_box_int _store_height_tl } {
\l__leporello_box_store_height_tl
}
\exp_args:No \tl_if_empty:NF { \l__leporello_box_store_height_tl } {
@@ -1528,7 +1729,7 @@
}
}
- \__leporello_box_store:Vn \g_leporello_box_int {#2}
+ \__leporello_box_store:Vn \g__leporello_box_int {#2}
\group_end:
} { }
@@ -1543,7 +1744,7 @@
}
\NewDocumentCommand { \leporelloboxwidth } { } {
- \dim_use:N \l_leporello_typeset_box_width_dim
+ \dim_use:N \l__leporello_typeset_box_width_dim
}
\NewDocumentCommand { \leporellobleed } { } {
@@ -1550,8 +1751,9 @@
\dim_use:N \l_leporello_bleed_dim
}
+\scan_new:N \s_leporello_split
\NewDocumentCommand { \leporelloboxbreak } { } {
- \tex_relax:D
+ \s_leporello_split
}
\NewDocumentCommand { \leporellojustified } { } {
More information about the tex-live-commits
mailing list.