summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/pagelayout
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/pagelayout')
-rw-r--r--macros/latex/contrib/pagelayout/README.md8
-rw-r--r--macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdfbin74994 -> 75095 bytes
-rw-r--r--macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex2
-rw-r--r--macros/latex/contrib/pagelayout/doc/quickstart-1.svg2
-rw-r--r--macros/latex/contrib/pagelayout/doc/quickstart.pdfbin121601 -> 121788 bytes
-rw-r--r--macros/latex/contrib/pagelayout/doc/quickstart.tex2
-rwxr-xr-xmacros/latex/contrib/pagelayout/scripts/pagelayoutapi19
-rw-r--r--macros/latex/contrib/pagelayout/scripts/pagelayoutapi.111
-rw-r--r--macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1.md5
-rwxr-xr-xmacros/latex/contrib/pagelayout/scripts/textestvis2
-rw-r--r--macros/latex/contrib/pagelayout/scripts/textestvis.14
-rw-r--r--macros/latex/contrib/pagelayout/tex/pagelayout.cls75
12 files changed, 91 insertions, 39 deletions
diff --git a/macros/latex/contrib/pagelayout/README.md b/macros/latex/contrib/pagelayout/README.md
index 16ab16e72c..1947399306 100644
--- a/macros/latex/contrib/pagelayout/README.md
+++ b/macros/latex/contrib/pagelayout/README.md
@@ -15,7 +15,7 @@ The pagelayout class also integrates the [TikZ](https://www.ctan.org/pkg/pgf) an
Generic templates are the easiest way to put content on a page. The template name describes the layout. You can arrange [l]andscape, [p]ortrait, [s]quare, [w]ide, [g]olden ratio, g[o]lden upright ratio or [f]lexible placeholders in rows [-]. A valid template name for example is `sg-ff`. Notice you cannot combine flexible with fixed aspect ratio placeholders within a row.
```latex
-\template{ss}{
+\template{ff}{
\text{
This text fills the first placeholder.
}
@@ -73,7 +73,7 @@ For a complete reference, read the [manual](doc/pagelayout-manual.pdf).
In general, you should use the package manager shipped with your TeX distribution to install the pagelayout package.
-To install manually, copy the contents of [pagelayout.tds.zip](https://github.com/friedemannbartels/latex-pagelayout/releases/download/v1.0.4/pagelayout.tds.zip) to your local TeX directory tree and run the command `texhash`.
+To install manually, copy the contents of [pagelayout.tds.zip](https://github.com/friedemannbartels/latex-pagelayout/releases/download/v1.0.5/pagelayout.tds.zip) to your local TeX directory tree and run the command `texhash`.
To enable image optimization, shadow creation, and preflight, perform these installation steps:
@@ -88,3 +88,7 @@ To enable image optimization, shadow creation, and preflight, perform these inst
## Development
Run visual regression tests inside the _tests_ directory with the command `textestvis`.
+
+## License
+
+Copyright (c) 2022-2023 Friedemann Bartels. Free use of this software is granted under the terms of the LaTeX Project Public License version 1.3c or later.
diff --git a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
index 85d1fb4985..a09ac3d752 100644
--- a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
+++ b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
index abab7ba9cf..15e57bcafc 100644
--- a/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
+++ b/macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
@@ -18,7 +18,7 @@
\usepackage{tikz}
\OnlyDescription
\hypersetup{pdfborder={0 0 0}}
-\def\pagelayoutversion{1.0.4}
+\def\pagelayoutversion{1.0.5}
\begin{document}
diff --git a/macros/latex/contrib/pagelayout/doc/quickstart-1.svg b/macros/latex/contrib/pagelayout/doc/quickstart-1.svg
index f21a2f9710..5d184af7e0 100644
--- a/macros/latex/contrib/pagelayout/doc/quickstart-1.svg
+++ b/macros/latex/contrib/pagelayout/doc/quickstart-1.svg
@@ -1 +1 @@
-<svg width="320" height="239" viewBox="0 0 240 179.25" version="1.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><defs><symbol overflow="visible" id="a"><path style="stroke:none" d="M.14-4.563h3.485v.532H2.187V0h-.609v-4.031H.141zm0 0"/></symbol><symbol overflow="visible" id="b"><path style="stroke:none" d="M3.203-2.125V0h-.562v-2.125c0-.3-.059-.523-.172-.672-.106-.144-.274-.219-.5-.219-.262 0-.465.094-.61.282-.136.187-.203.453-.203.796V0H.594v-4.75h.562v1.844a1.03 1.03 0 0 1 .407-.438c.164-.101.367-.156.609-.156.344 0 .598.117.765.344.176.23.266.574.266 1.031zm0 0"/></symbol><symbol overflow="visible" id="c"><path style="stroke:none" d="M.969-3.406h1.437v2.969h1.11V0H.719v-.438h1.125v-2.53H.969zm.875-1.328h.562v.703h-.562zm0 0"/></symbol><symbol overflow="visible" id="d"><path style="stroke:none" d="M2.969-3.297v.547a1.853 1.853 0 0 0-.485-.203 1.731 1.731 0 0 0-.5-.078c-.25 0-.437.043-.562.125a.427.427 0 0 0-.188.375c0 .156.047.273.141.344.094.074.32.148.688.218l.234.047c.281.055.488.156.625.313.144.156.219.367.219.625 0 .336-.121.601-.36.796-.242.188-.574.282-1 .282-.168 0-.343-.024-.531-.063a3.437 3.437 0 0 1-.594-.156v-.578c.207.105.406.187.594.25.188.055.367.078.547.078.25 0 .441-.05.578-.156a.505.505 0 0 0 .203-.422c0-.258-.25-.442-.75-.547h-.031l-.203-.047c-.324-.062-.563-.164-.719-.312-.148-.157-.219-.36-.219-.61 0-.332.11-.586.328-.765.227-.176.547-.266.954-.266.187 0 .363.016.53.047.165.031.333.086.5.156zm0 0"/></symbol><symbol overflow="visible" id="e"><path style="stroke:none" d="M1.875-4.39v.968h1.281v.438H1.875v1.859c0 .25.047.43.14.531.094.094.258.14.5.14h.641V0H2.47c-.43 0-.73-.082-.906-.25-.168-.164-.25-.457-.25-.875v-1.86H.405v-.437h.906v-.969zm0 0"/></symbol><symbol overflow="visible" id="f"><path style="stroke:none" d="M3.422-1.984v.265H.984v.016c-.011.469.079.808.266 1.016.195.199.473.296.828.296.176 0 .363-.023.563-.078.195-.062.406-.148.625-.265v.562a3.72 3.72 0 0 1-.625.188c-.2.05-.391.078-.579.078-.53 0-.949-.157-1.25-.469C.52-.695.376-1.141.376-1.703c0-.55.145-.988.438-1.313.289-.32.68-.484 1.171-.484.438 0 .782.152 1.032.453.25.293.382.649.406 1.063zm-.563-.172a1.14 1.14 0 0 0-.265-.61c-.149-.175-.356-.265-.625-.265a.879.879 0 0 0-.672.281.943.943 0 0 0-.297.594Zm0 0"/></symbol><symbol overflow="visible" id="g"><path style="stroke:none" d="m3.406-3.422-1.219 1.64L3.532 0h-.656l-1-1.375L.875 0h-.64l1.343-1.781-1.234-1.64h.625l.906 1.233.906-1.234Zm0 0"/></symbol><symbol overflow="visible" id="h"><path style="stroke:none" d="M3.25-4.75v.469h-.64c-.212 0-.356.043-.438.125-.074.086-.11.23-.11.437v.297H3.25v.438H2.062V0H1.5v-2.984H.594v-.438H1.5v-.234c0-.375.082-.649.25-.828.176-.176.445-.266.813-.266Zm0 0"/></symbol><symbol overflow="visible" id="i"><path style="stroke:none" d="M2.188-1.234c0 .25.046.445.14.578.094.125.235.187.422.187h.656V0h-.719c-.335 0-.593-.102-.78-.313-.188-.218-.282-.523-.282-.921v-3.094h-.89v-.438h1.453Zm0 0"/></symbol><symbol overflow="visible" id="j"><path style="stroke:none" d="M3.531-2.719a1.364 1.364 0 0 0-.375-.203 1.361 1.361 0 0 0-.406-.062c-.355 0-.625.109-.813.328-.18.219-.265.539-.265.953V0h-.563v-3.422h.563v.672c.094-.238.234-.422.422-.547a1.22 1.22 0 0 1 .703-.203c.133 0 .258.023.375.063.125.03.242.085.36.156zm0 0"/></symbol><symbol overflow="visible" id="k"><path style="stroke:none" d="M1.14-.438v1.735H.579v-4.719h.563v.438a.961.961 0 0 1 .375-.375c.156-.094.336-.141.546-.141.407 0 .723.164.954.484.238.313.359.758.359 1.329 0 .554-.121.992-.36 1.312-.23.313-.546.469-.953.469-.21 0-.39-.043-.546-.125a.996.996 0 0 1-.375-.406zm1.657-1.265c0-.438-.074-.766-.219-.984a.67.67 0 0 0-.61-.344.7.7 0 0 0-.624.344c-.137.218-.203.546-.203.984 0 .43.066.758.203.984a.702.702 0 0 0 .625.328c.27 0 .472-.109.61-.328.144-.219.218-.547.218-.984zm0 0"/></symbol><symbol overflow="visible" id="l"><path style="stroke:none" d="M2.14-1.719h-.187c-.324 0-.57.059-.734.172-.168.117-.25.29-.25.516 0 .21.062.37.187.484.125.117.297.172.516.172.312 0 .555-.11.734-.328.176-.219.266-.516.266-.89v-.126zm1.094-.234V0h-.562v-.5c-.125.2-.281.352-.469.453a1.4 1.4 0 0 1-.656.14c-.344 0-.621-.097-.828-.296C.508-.398.406-.664.406-1c0-.375.125-.66.375-.86.258-.195.633-.296 1.125-.296h.766v-.094c0-.27-.074-.469-.219-.594-.137-.125-.351-.187-.64-.187-.2 0-.399.031-.594.094a2.867 2.867 0 0 0-.563.234v-.563a6.11 6.11 0 0 1 .594-.171c.188-.04.375-.063.563-.063.28 0 .519.043.718.125.196.086.36.21.485.375a.92.92 0 0 1 .171.375c.032.148.047.371.047.672zm0 0"/></symbol><symbol overflow="visible" id="m"><path style="stroke:none" d="M3.234-.172a1.732 1.732 0 0 1-.468.188c-.157.05-.32.078-.485.078-.531 0-.949-.157-1.25-.469-.293-.32-.437-.766-.437-1.328 0-.563.144-1 .437-1.313.301-.32.719-.484 1.25-.484.164 0 .328.023.485.063.156.042.312.109.468.203v.578a1.665 1.665 0 0 0-.453-.281 1.268 1.268 0 0 0-.5-.094c-.355 0-.625.117-.812.344-.188.23-.282.558-.282.984 0 .418.094.742.282.969.195.23.468.343.812.343.196 0 .375-.023.531-.078.157-.062.297-.156.422-.281Zm0 0"/></symbol><symbol overflow="visible" id="n"><path style="stroke:none" d="M.313-2.203h3.234v.515H.312Zm0 0"/></symbol><symbol overflow="visible" id="o"><path style="stroke:none" d="M1.875-3.031a.716.716 0 0 0-.64.344c-.15.218-.22.546-.22.984 0 .43.07.758.22.984.144.219.359.328.64.328.29 0 .508-.109.656-.328.145-.226.219-.554.219-.984 0-.438-.074-.766-.219-.984a.738.738 0 0 0-.656-.344Zm0-.469c.477 0 .844.156 1.094.469.25.304.375.746.375 1.328 0 .586-.125 1.031-.375 1.344-.25.304-.617.453-1.094.453-.469 0-.828-.149-1.078-.453-.25-.313-.375-.758-.375-1.344 0-.582.125-1.024.375-1.328.25-.313.61-.469 1.078-.469Zm0 0"/></symbol><symbol overflow="visible" id="p"><path style="stroke:none" d="M2.625-2.984V-4.75h.563V0h-.563v-.438a.996.996 0 0 1-.375.407c-.156.082-.34.125-.547.125-.406 0-.73-.16-.969-.485C.492-.71.375-1.156.375-1.719c0-.55.117-.984.36-1.297a1.15 1.15 0 0 1 .968-.484 1.046 1.046 0 0 1 .922.516zM.969-1.704c0 .438.066.766.203.985.133.219.336.328.61.328a.71.71 0 0 0 .624-.328c.145-.226.219-.554.219-.984 0-.438-.074-.766-.219-.984a.708.708 0 0 0-.625-.344.662.662 0 0 0-.61.344c-.136.218-.202.546-.202.984zm0 0"/></symbol><symbol overflow="visible" id="q"><path style="stroke:none" d="M1.188-1.234h1.078V0H1.187Zm0 0"/></symbol><symbol overflow="visible" id="r"><path style="stroke:none" d="M5.984-3.578h8.672V0H1.578v-3.469l2.219-2.344C6.41-8.601 8-10.316 8.562-10.953c.688-.79 1.18-1.492 1.485-2.11.3-.613.453-1.218.453-1.812 0-.914-.277-1.625-.828-2.125-.555-.5-1.34-.75-2.36-.75-.73 0-1.546.148-2.453.438-.906.28-1.851.699-2.828 1.25v-3.797a20.224 20.224 0 0 1 2.875-.813 13.977 13.977 0 0 1 2.719-.281c2.176 0 3.883.512 5.125 1.531 1.25 1.012 1.875 2.39 1.875 4.14A6.37 6.37 0 0 1 14.219-13c-.274.71-.735 1.496-1.39 2.36-.493.624-1.829 2.03-4.017 4.218a517.956 517.956 0 0 0-2.828 2.844zm0 0"/></symbol></defs><path style="fill:#fff;stroke-width:1.43381" d="M4.065.004h231.869a4.056 4.056 0 0 1 4.065 4.065v170.906a4.056 4.056 0 0 1-4.065 4.064H4.064A4.056 4.056 0 0 1 0 174.975V4.07A4.056 4.056 0 0 1 4.065.004Z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M0 179.037v-.203h239.999v.203zm0-4.06v-.204h239.999v.204zm0-4.066v-.204h239.999v.204zm0-4.068v-.2h239.999v.2zm0-4.058v-.205h239.999v.204zm0-4.066v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.061v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.06v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.06V126h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.069v-.2h239.999v.2zm0-4.06v-.201h239.999v.2zm0-4.067v-.2h239.999v.2zm0-4.066v-.2h239.999v.2zm0-4.058v-.205h239.999v.205zm0-4.069v-.2h239.999v.2zm0-4.066v-.2h239.999v.2zm0-4.066v-.201h239.999v.2zm0-4.058v-.204h239.999v.204zm0-4.07v-.2h239.999v.2zm0-4.063v-.2h239.999v.2zm0-4.06v-.204h239.999v.204ZM0 69.3v-.204h239.999v.204zm0-4.067v-.203h239.999v.203zm0-4.06v-.204h239.999v.204zm0-4.067v-.203h239.999v.203zm0-4.066v-.204h239.999v.204zm0-4.06v-.204h239.999v.204zm0-4.067v-.203h239.999v.203zm0-4.066v-.204h239.999v.204zm0-4.06v-.204h239.999v.203zm0-4.066v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.06v-.205h239.999v.205zm0-4.067v-.205h239.999v.205zm0-4.066v-.205h239.999v.205zm0-4.06v-.206h239.999v.205zm0-4.067V8.13h239.999v.205zM0 4.27v-.205h239.999v.205zM0 .21V.003h239.999V.21z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M0 179.035V0h.2v179.033zm4.065 0V0h.2v179.033zm4.06 0V0h.2v179.033zm4.065 0V0h.202v179.033zm4.066 0V0h.202v179.033zm4.06 0V0h.203v179.033zm4.067 0V0h.202v179.033zm4.066 0V0h.203v179.033zm4.061 0V0h.202v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.205v179.033zm4.06 0V0h.2v179.033zm4.066 0V0h.205v179.033zm4.067 0V0h.205v179.033zm4.06 0V0h.205v179.033zm4.067 0V0h.205v179.033zm4.066 0V0h.2v179.033zm4.06 0V0h.208v179.033h-.2Zm4.067 0V0h.2v179.033zm4.066 0V0h.2v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.066 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.061 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.204v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.203v179.033zm4.066 0V0h.2v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.065 0V0h.202v179.033zm4.057 0V0h.205v179.033zm4.07 0V0h.202v179.033zm4.066 0V0h.202v179.033zm4.06 0V0h.203v179.033zm4.064 0V0h.205v179.033zm4.069 0V0h.205v179.033zm4.06 0V0h.201v179.033zm4.067 0V0h.205v179.033zm4.063 0V0h.205v179.033zm4.064 0V0h.205v179.033zm4.066 0V0h.205v179.033zm4.066 0V0h.201v179.033zm4.06 0V0h.202v179.033zm4.067 0V0h.205v179.033zm4.066 0V0h.201v179.033zm4.061 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.2v179.033zm4.066 0V0h.201v179.033zm4.067 0V0h.2v179.033zm4.06 0V0h.208v179.033h-.2zm4.067 0V0h.2v179.033zm4.066 0V0h.2v179.033z"/><path style="fill:#000;stroke-width:1.43381" d="M7.94.004v4.163h.57V.004zm223.546 0v4.163h.572V.004ZM0 7.946v.57h4.164v-.568H0Zm235.833 0v.57H240v-.568h-4.167zM0 170.525v.57h4.164v-.572H0Zm235.833 0v.57H240v-.572h-4.168zm-227.896 4.35v4.164h.571v-4.164zm223.546 0v4.164h.572v-4.164h-.57z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M0 170.91v-.203h239.999v.204zm0-20.318v-.205h239.999v.205zm0-20.326v-.205h239.999v.205zm0-20.323v-.2h239.999v.2zm0-20.325v-.201h239.999v.2zM0 69.3v-.204h239.999v.204zm0-20.32v-.204h239.999v.204zm0-20.325v-.205h239.999v.205zm0-20.32V8.13h239.999v.205z"/><path style="fill:#a6a6a6;fill-opacity:.2;stroke-width:1.43381" d="M8.125 179.035V0h.2v179.033zm20.324 0V0h.203v179.033zm20.32 0V0h.205v179.033zm20.32 0V0h.208v179.033h-.2Zm20.326 0V0h.2v179.033zm20.32 0V0h.204v179.033zm20.326 0V0h.2v179.033zm20.318 0V0h.203v179.033zm20.32 0V0h.201v179.033zm20.326 0V0h.201v179.033zm20.32 0V0h.201v179.033zm20.32 0V0h.208v179.033h-.2z"/><use xlink:href="#a" x="19.654" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#b" x="23.431" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#c" x="27.208" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#d" x="30.984" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#e" x="38.644" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#f" x="42.421" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#g" x="46.198" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#e" x="49.981" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#h" x="57.635" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#c" x="61.412" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#i" x="65.195" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#i" x="68.971" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#d" x="72.748" y="38.799" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#e" x="19.842" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#b" x="23.619" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#f" x="27.396" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#h" x="34.018" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#c" x="37.794" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#j" x="41.571" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#d" x="45.348" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#e" x="49.131" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#k" x="55.747" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#i" x="59.524" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#l" x="63.3" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#m" x="67.083" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#f" x="70.86" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#n" x="74.637" y="47.366" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#b" x="19.842" y="55.934" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#o" x="23.619" y="55.934" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#i" x="27.396" y="55.934" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#p" x="31.172" y="55.934" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#f" x="34.956" y="55.934" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#j" x="38.732" y="55.934" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><use xlink:href="#q" x="42.509" y="55.934" width="100%" height="100%" style="fill:#000;fill-opacity:1" transform="translate(.102 .102) scale(1.43381)"/><path style="fill:#b3e6fa;fill-opacity:.3;fill-rule:nonzero;stroke:#66ccf5;stroke-width:.28346;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:.3" d="M.002.002v56.691h56.691V.002Zm0 0" transform="matrix(1.43381 0 0 -1.43381 130.162 130.156)"/><use xlink:href="#r" x="110.523" y="72.878" width="100%" height="100%" style="fill:#66ccf5;fill-opacity:.3" transform="translate(.102 .102) scale(1.43381)"/></svg> \ No newline at end of file
+<svg width="320" height="239" viewBox="0 0 167.24 124.72" version="1.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><defs><symbol overflow="visible" id="b"><path style="stroke:none" d="M.14-4.563h3.485v.532H2.187V0h-.609v-4.031H.141Zm0 0"/></symbol><symbol overflow="visible" id="c"><path style="stroke:none" d="M3.203-2.125V0h-.562v-2.125c0-.3-.059-.523-.172-.672-.106-.144-.274-.219-.5-.219-.262 0-.465.094-.61.282-.136.187-.203.453-.203.796V0H.594v-4.75h.562v1.844a1.03 1.03 0 0 1 .407-.438c.164-.101.367-.156.609-.156.344 0 .598.117.765.344.176.23.266.574.266 1.031Zm0 0"/></symbol><symbol overflow="visible" id="d"><path style="stroke:none" d="M.969-3.406h1.437v2.969h1.11V0H.719v-.438h1.125v-2.53H.969Zm.875-1.328h.562v.703h-.562Zm0 0"/></symbol><symbol overflow="visible" id="e"><path style="stroke:none" d="M2.969-3.297v.547a1.853 1.853 0 0 0-.485-.203 1.731 1.731 0 0 0-.5-.078c-.25 0-.437.043-.562.125a.427.427 0 0 0-.188.375c0 .156.047.273.141.344.094.074.32.148.688.218l.234.047c.281.055.488.156.625.313.144.156.219.367.219.625 0 .336-.121.601-.36.796-.242.188-.574.282-1 .282-.168 0-.343-.024-.531-.063a3.437 3.437 0 0 1-.594-.156v-.578c.207.105.406.187.594.25.188.055.367.078.547.078.25 0 .441-.05.578-.156a.505.505 0 0 0 .203-.422c0-.258-.25-.442-.75-.547h-.031l-.203-.047c-.324-.062-.563-.164-.719-.312-.148-.157-.219-.36-.219-.61 0-.332.11-.586.328-.765.227-.176.547-.266.954-.266.187 0 .363.016.53.047.165.031.333.086.5.156Zm0 0"/></symbol><symbol overflow="visible" id="f"><path style="stroke:none" d="M1.875-4.39v.968h1.281v.438H1.875v1.859c0 .25.047.43.14.531.094.094.258.14.5.14h.641V0H2.47c-.43 0-.73-.082-.906-.25-.168-.164-.25-.457-.25-.875v-1.86H.405v-.437h.906v-.969Zm0 0"/></symbol><symbol overflow="visible" id="g"><path style="stroke:none" d="M3.422-1.984v.265H.984v.016c-.011.469.079.808.266 1.016.195.199.473.296.828.296.176 0 .363-.023.563-.078.195-.062.406-.148.625-.265v.562a3.72 3.72 0 0 1-.625.188c-.2.05-.391.078-.579.078-.53 0-.949-.157-1.25-.469C.52-.695.376-1.141.376-1.703c0-.55.145-.988.438-1.313.289-.32.68-.484 1.171-.484.438 0 .782.152 1.032.453.25.293.382.649.406 1.063Zm-.563-.172a1.14 1.14 0 0 0-.265-.61c-.149-.175-.356-.265-.625-.265a.879.879 0 0 0-.672.281.943.943 0 0 0-.297.594Zm0 0"/></symbol><symbol overflow="visible" id="h"><path style="stroke:none" d="m3.406-3.422-1.219 1.64L3.532 0h-.656l-1-1.375L.875 0h-.64l1.343-1.781-1.234-1.64h.625l.906 1.233.906-1.234Zm0 0"/></symbol><symbol overflow="visible" id="i"><path style="stroke:none" d="M3.25-4.75v.469h-.64c-.212 0-.356.043-.438.125-.074.086-.11.23-.11.437v.297H3.25v.438H2.062V0H1.5v-2.984H.594v-.438H1.5v-.234c0-.375.082-.649.25-.828.176-.176.445-.266.813-.266Zm0 0"/></symbol><symbol overflow="visible" id="j"><path style="stroke:none" d="M2.188-1.234c0 .25.046.445.14.578.094.125.235.187.422.187h.656V0h-.719c-.335 0-.593-.102-.78-.313-.188-.218-.282-.523-.282-.921v-3.094h-.89v-.438h1.453Zm0 0"/></symbol><symbol overflow="visible" id="k"><path style="stroke:none" d="M3.531-2.719a1.364 1.364 0 0 0-.375-.203 1.361 1.361 0 0 0-.406-.062c-.355 0-.625.109-.813.328-.18.219-.265.539-.265.953V0h-.563v-3.422h.563v.672c.094-.238.234-.422.422-.547.195-.133.43-.203.703-.203.133 0 .258.023.375.063.125.03.242.085.36.156Zm0 0"/></symbol><symbol overflow="visible" id="l"><path style="stroke:none" d="M1.14-.438v1.735H.579v-4.719h.563v.438a.961.961 0 0 1 .375-.375c.156-.094.336-.141.546-.141.407 0 .723.164.954.484.238.313.359.758.359 1.329 0 .554-.121.992-.36 1.312-.23.313-.546.469-.953.469-.21 0-.39-.043-.546-.125a.996.996 0 0 1-.375-.406Zm1.657-1.265c0-.438-.074-.766-.219-.984a.67.67 0 0 0-.61-.344.7.7 0 0 0-.624.344c-.137.218-.203.546-.203.984 0 .43.066.758.203.984a.702.702 0 0 0 .625.328c.27 0 .472-.109.61-.328.144-.219.218-.547.218-.984Zm0 0"/></symbol><symbol overflow="visible" id="m"><path style="stroke:none" d="M2.14-1.719h-.187c-.324 0-.57.059-.734.172-.168.117-.25.29-.25.516 0 .21.062.37.187.484.125.117.297.172.516.172.312 0 .555-.11.734-.328.176-.219.266-.516.266-.89v-.126Zm1.094-.234V0h-.562v-.5c-.125.2-.281.352-.469.453-.18.094-.398.14-.656.14-.344 0-.621-.097-.828-.296C.508-.398.406-.664.406-1c0-.375.125-.66.375-.86.258-.195.633-.296 1.125-.296h.766v-.094c0-.27-.074-.469-.219-.594-.137-.125-.351-.187-.64-.187-.2 0-.399.031-.594.094a2.867 2.867 0 0 0-.563.234v-.563a6.11 6.11 0 0 1 .594-.171c.188-.04.375-.063.563-.063.28 0 .519.043.718.125.196.086.36.21.485.375a.92.92 0 0 1 .171.375c.032.148.047.371.047.672Zm0 0"/></symbol><symbol overflow="visible" id="n"><path style="stroke:none" d="M3.234-.172a1.732 1.732 0 0 1-.468.188c-.157.05-.32.078-.485.078-.531 0-.949-.157-1.25-.469-.293-.32-.437-.766-.437-1.328 0-.563.144-1 .437-1.313.301-.32.719-.484 1.25-.484.164 0 .328.023.485.063.156.042.312.109.468.203v.578a1.665 1.665 0 0 0-.453-.281 1.268 1.268 0 0 0-.5-.094c-.355 0-.625.117-.812.344-.188.23-.282.558-.282.984 0 .418.094.742.282.969.195.23.468.343.812.343.196 0 .375-.023.531-.078.157-.062.297-.156.422-.281Zm0 0"/></symbol><symbol overflow="visible" id="o"><path style="stroke:none" d="M.313-2.203h3.234v.515H.312Zm0 0"/></symbol><symbol overflow="visible" id="p"><path style="stroke:none" d="M1.875-3.031a.716.716 0 0 0-.64.344c-.15.218-.22.546-.22.984 0 .43.07.758.22.984.144.219.359.328.64.328.29 0 .508-.109.656-.328.145-.226.219-.554.219-.984 0-.438-.074-.766-.219-.984a.738.738 0 0 0-.656-.344Zm0-.469c.477 0 .844.156 1.094.469.25.304.375.746.375 1.328 0 .586-.125 1.031-.375 1.344-.25.304-.617.453-1.094.453-.469 0-.828-.149-1.078-.453-.25-.313-.375-.758-.375-1.344 0-.582.125-1.024.375-1.328.25-.313.61-.469 1.078-.469Zm0 0"/></symbol><symbol overflow="visible" id="q"><path style="stroke:none" d="M2.625-2.984V-4.75h.563V0h-.563v-.438a.996.996 0 0 1-.375.407c-.156.082-.34.125-.547.125-.406 0-.73-.16-.969-.485C.492-.71.375-1.156.375-1.719c0-.55.117-.984.36-1.297a1.15 1.15 0 0 1 .968-.484 1.046 1.046 0 0 1 .922.516ZM.969-1.704c0 .438.066.766.203.985.133.219.336.328.61.328.269 0 .476-.109.624-.328.145-.226.219-.554.219-.984 0-.438-.074-.766-.219-.984a.708.708 0 0 0-.625-.344.662.662 0 0 0-.61.344c-.136.218-.202.546-.202.984Zm0 0"/></symbol><symbol overflow="visible" id="r"><path style="stroke:none" d="M1.188-1.234h1.078V0H1.187Zm0 0"/></symbol><symbol overflow="visible" id="s"><path style="stroke:none" d="M5.984-3.578h8.672V0H1.578v-3.469l2.219-2.344C6.41-8.601 8-10.316 8.562-10.953c.688-.79 1.18-1.492 1.485-2.11.3-.613.453-1.218.453-1.812 0-.914-.277-1.625-.828-2.125-.555-.5-1.34-.75-2.36-.75-.73 0-1.546.148-2.453.438-.906.28-1.851.699-2.828 1.25v-3.797a20.224 20.224 0 0 1 2.875-.813 13.977 13.977 0 0 1 2.719-.281c2.176 0 3.883.512 5.125 1.531 1.25 1.012 1.875 2.39 1.875 4.14 0 .813-.137 1.575-.406 2.282-.274.71-.735 1.496-1.39 2.36-.493.624-1.829 2.03-4.017 4.218a517.956 517.956 0 0 0-2.828 2.844Zm0 0"/></symbol><clipPath id="a"><path d="M0 0h167.238v124.719H0Zm0 0"/></clipPath><clipPath id="t"><path d="M5 121h1v3.719H5Zm0 0"/></clipPath><clipPath id="u"><path d="M164 118h3.238v2H164Zm0 0"/></clipPath><clipPath id="v"><path d="M161 121h1v3.719h-1Zm0 0"/></clipPath><clipPath id="w"><path d="M164 5h3.238v1H164Zm0 0"/></clipPath></defs><g clip-path="url(#a)"><path style="fill:none;stroke-width:.14172;stroke-linecap:square;stroke-linejoin:miter;stroke:#a6a6a6;stroke-opacity:.2;stroke-miterlimit:10" d="M0 .001h175.75M0 2.833h175.75M0 5.67h175.75M0 8.505h175.75M0 11.337h175.75M0 14.173h175.75M0 17.01h175.75M0 19.841h175.75M0 22.677h175.75M0 25.513h175.75M0 28.345h175.75M0 31.181h175.75M0 34.017h175.75M0 36.849h175.75M0 39.685h175.75M0 42.52h175.75M0 45.353h175.75M0 48.189h175.75M0 51.025h175.75M0 53.857h175.75M0 56.693h175.75M0 59.529h175.75M0 62.36h175.75M0 65.197h175.75M0 68.033h175.75M0 70.869h175.75M0 73.7h175.75M0 76.537h175.75M0 79.371h175.75M0 82.204h175.75M0 85.04h175.75M0 87.876h175.75M0 90.708h175.75M0 93.544h175.75M0 96.38h175.75M0 99.212h175.75M0 102.048h175.75M0 104.884h175.75M0 107.716h175.75M0 110.552h175.75M0 113.388h175.75M0 116.22h175.75M0 119.056h175.75M0 121.892h175.75M0 124.724h175.75M0 127.56h175.75M0 130.396h175.75M0 133.228h175.75M0 0v133.23M2.836.002v133.23M5.668.002v133.23M8.504.002v133.23M11.34.002v133.23M14.172.002v133.23M17.008.002v133.23M19.844.002v133.23M22.676.002v133.23M25.512.002v133.23M28.348.002v133.23M31.18.002v133.23M34.016.002v133.23M36.852.002v133.23M39.684.002v133.23M42.52.002v133.23M45.356.002v133.23M48.188.002v133.23M51.024.002v133.23M53.859.002v133.23M56.691.002v133.23M59.527.002v133.23M62.363.002v133.23M65.195.002v133.23M68.031.002v133.23M70.867.002v133.23M73.703.002v133.23M76.535.002v133.23M79.371.002v133.23M82.207.002v133.23M85.04.002v133.23M87.875.002v133.23M90.711.002v133.23M93.543.002v133.23M96.38.002v133.23M99.215.002v133.23M102.047.002v133.23M104.883.002v133.23M107.719.002v133.23M110.55.002v133.23M113.387.002v133.23M116.223.002v133.23M119.055.002v133.23M121.89.002v133.23M124.727.002v133.23M127.559.002v133.23M130.395.002v133.23M133.23.002v133.23M136.063.002v133.23M138.899.002v133.23M141.734.002v133.23M144.566.002v133.23M147.403.002v133.23M150.238.002v133.23M153.07.002v133.23M155.906.002v133.23M158.742.002v133.23M161.574.002v133.23M164.41.002v133.23M167.246.002v133.23M170.078.002v133.23M172.914.002v133.23M175.75.002v133.23M0 .001h175.75M0 14.173h175.75M0 28.345h175.75M0 42.521h175.75M0 56.693h175.75M0 70.869h175.75M0 85.04h175.75M0 99.212h175.75M0 113.388h175.75M0 127.56h175.75M0 0v133.23M14.172.002v133.23M28.348.002v133.23M42.52.002v133.23M56.695.002v133.23M70.867.002v133.23M85.04.002v133.23M99.215.002v133.23M113.387.002v133.23M127.559.002v133.23M141.734.002v133.23M155.906.002v133.23M170.082.002v133.23" transform="matrix(1 0 0 -1 -8.504 133.224)"/></g><use xlink:href="#b" x="19.654" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#c" x="23.431" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#d" x="27.208" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#e" x="30.984" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#f" x="38.644" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#g" x="42.421" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#h" x="46.198" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#f" x="49.981" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#i" x="57.635" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#d" x="61.412" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#j" x="65.195" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#j" x="68.971" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#e" x="72.748" y="24.625" style="fill:#000;fill-opacity:1"/><use xlink:href="#f" x="19.842" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#c" x="23.619" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#g" x="27.396" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#i" x="34.018" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#d" x="37.794" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#k" x="41.571" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#e" x="45.348" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#f" x="49.131" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#l" x="55.747" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#j" x="59.524" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#m" x="63.3" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#n" x="67.083" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#g" x="70.86" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#o" x="74.637" y="33.193" style="fill:#000;fill-opacity:1"/><use xlink:href="#c" x="19.842" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#p" x="23.619" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#j" x="27.396" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#q" x="31.172" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#g" x="34.956" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#k" x="38.732" y="41.761" style="fill:#000;fill-opacity:1"/><use xlink:href="#r" x="42.509" y="41.761" style="fill:#000;fill-opacity:1"/><path style="fill-rule:nonzero;fill:#b3e6fa;fill-opacity:.3;stroke-width:.28346;stroke-linecap:butt;stroke-linejoin:miter;stroke:#66cef5;stroke-opacity:.3;stroke-miterlimit:10" d="M.002 0v85.042h56.691V0Zm0 0" transform="matrix(1 0 0 -1 90.709 104.878)"/><use xlink:href="#s" x="110.523" y="72.877" style="fill:#66cef5;fill-opacity:.3"/><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M-2.836 5.67h5.672" transform="matrix(1 0 0 -1 0 124.72)"/><g clip-path="url(#t)"><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M5.668-2.835v5.668" transform="matrix(1 0 0 -1 0 124.72)"/></g><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M-2.836 119.056h5.672M5.668 127.56v-5.668" transform="matrix(1 0 0 -1 0 124.72)"/><g clip-path="url(#u)"><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M170.082 5.67h-5.672" transform="matrix(1 0 0 -1 0 124.72)"/></g><g clip-path="url(#v)"><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M161.578-2.835v5.668" transform="matrix(1 0 0 -1 0 124.72)"/></g><g clip-path="url(#w)"><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M170.082 119.056h-5.672" transform="matrix(1 0 0 -1 0 124.72)"/></g><path style="fill:none;stroke-width:.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:#000;stroke-opacity:1;stroke-miterlimit:10" d="M161.578 127.56v-5.668" transform="matrix(1 0 0 -1 0 124.72)"/></svg> \ No newline at end of file
diff --git a/macros/latex/contrib/pagelayout/doc/quickstart.pdf b/macros/latex/contrib/pagelayout/doc/quickstart.pdf
index 9fe5b29071..2af22e071a 100644
--- a/macros/latex/contrib/pagelayout/doc/quickstart.pdf
+++ b/macros/latex/contrib/pagelayout/doc/quickstart.pdf
Binary files differ
diff --git a/macros/latex/contrib/pagelayout/doc/quickstart.tex b/macros/latex/contrib/pagelayout/doc/quickstart.tex
index 095c98d288..3a503dd28d 100644
--- a/macros/latex/contrib/pagelayout/doc/quickstart.tex
+++ b/macros/latex/contrib/pagelayout/doc/quickstart.tex
@@ -28,7 +28,7 @@
\fontsize{6.3pt}{8.6pt}\selectfont
% generic template
- \template{ss}{
+ \template{ff}{
\text{
This text fills the first placeholder.
}
diff --git a/macros/latex/contrib/pagelayout/scripts/pagelayoutapi b/macros/latex/contrib/pagelayout/scripts/pagelayoutapi
index 4c6888a249..7533cf722e 100755
--- a/macros/latex/contrib/pagelayout/scripts/pagelayoutapi
+++ b/macros/latex/contrib/pagelayout/scripts/pagelayoutapi
@@ -13,7 +13,7 @@
# LaTeX version 2008/05/04 or later.
#
-version=1.0.4
+version=1.0.5
_convert() {
turbo=$1
@@ -100,6 +100,17 @@ getwidth() {
fi
}
+getheight() {
+ if command -v magick >/dev/null 2>&1; then
+ filename=$1
+
+ originalheight=$( magick identify -ping -format %h "$filename" )
+ echo $originalheight
+ else
+ echo errormagicknotinstalled
+ fi
+}
+
optimize() {
if command -v magick >/dev/null 2>&1; then
filenamecache=$2
@@ -299,6 +310,7 @@ batchoptimize() {
usage() {
cat <<HELP_USAGE
usage: pagelayoutapi getwidth % FILE
+ pagelayoutapi getheight % FILE
pagelayoutapi optimize % FILE % FILENAME % EXTENSION % ORIGINALWIDTH
% ORIGINALHEIGHT % CROPLEFT % CROPRIGHT % CROPTOP % CROPBOTTOM
% DENSITY % WIDTH % HEIGHT % DOWNSAMPLETHRESHOLD % UNSHARP % QUALITY
@@ -327,6 +339,11 @@ getwidth)
getwidth "$1"
;;
+getheight)
+ shift
+
+ getheight "$1"
+ ;;
optimize)
shift
diff --git a/macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1 b/macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1
index 368e411ef7..dab9b89f1c 100644
--- a/macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1
+++ b/macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1
@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
-.TH "PAGELAYOUTAPI" "1" "January 2023" "" ""
+.TH "PAGELAYOUTAPI" "1" "December 2023" "" ""
.
.SH "NAME"
\fBpagelayoutapi\fR \- API for the pagelayout LaTeX class
@@ -10,6 +10,9 @@
\fBpagelayoutapi getwidth\fR % FILE
.
.P
+\fBpagelayoutapi getheight\fR % FILE
+.
+.P
\fBpagelayoutapi optimize\fR % FILE % FILENAME % EXTENSION % ORIGINALWIDTH % ORIGINALHEIGHT % CROPLEFT % CROPRIGHT % CROPTOP % CROPBOTTOM % DENSITY % WIDTH % HEIGHT % DOWNSAMPLETHRESHOLD % UNSHARP % QUALITY
.
.P
@@ -29,6 +32,10 @@ This script provides an API for the pagelayout LaTeX class\.
Returns the width in pixels for the given image file\.
.
.TP
+\fBpagelayoutapi getheight\fR
+Returns the height in pixels for the given image file\.
+.
+.TP
\fBpagelayoutapi optimize\fR
Creates a cropped, rezised, sharpend and compressed image and stores it in the cache directory\.
.
@@ -122,4 +129,4 @@ Defines a system wide import directory\.
\fBpagelayoutapi\fR was written by Friedemann Bartels\. \fIhttps://github\.com/friedemannbartels\fR
.
.SH "LICENSE"
-Copyright (c) 2022-2023 Friedemann Bartels\. Free use of this software is granted under the terms of the LaTeX Project Public License version 1\.3c or later\.
+Copyright (c) 2022\-2023 Friedemann Bartels\. Free use of this software is granted under the terms of the LaTeX Project Public License version 1\.3c or later\.
diff --git a/macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1.md b/macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1.md
index ab04ddd0b8..881554a124 100644
--- a/macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1.md
+++ b/macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1.md
@@ -5,6 +5,8 @@ pagelayoutapi(1) -- API for the pagelayout LaTeX class
`pagelayoutapi getwidth` % FILE
+`pagelayoutapi getheight` % FILE
+
`pagelayoutapi optimize` % FILE % FILENAME % EXTENSION % ORIGINALWIDTH % ORIGINALHEIGHT % CROPLEFT % CROPRIGHT % CROPTOP % CROPBOTTOM % DENSITY % WIDTH % HEIGHT % DOWNSAMPLETHRESHOLD % UNSHARP % QUALITY
`pagelayoutapi makeshadow` % FILENAME % STANDARDDEVIATION % OPACITY % COLOR % WIDTH % HEIGHT % FRAMEWIDTH % FRAMEHEIGHT % MARGIN % BORDERRADIUS
@@ -20,6 +22,9 @@ This script provides an API for the pagelayout LaTeX class.
* `pagelayoutapi getwidth`:
Returns the width in pixels for the given image file.
+* `pagelayoutapi getheight`:
+ Returns the height in pixels for the given image file.
+
* `pagelayoutapi optimize`:
Creates a cropped, rezised, sharpend and compressed image and stores it in the cache directory.
diff --git a/macros/latex/contrib/pagelayout/scripts/textestvis b/macros/latex/contrib/pagelayout/scripts/textestvis
index dba5e4c1aa..53dcedddca 100755
--- a/macros/latex/contrib/pagelayout/scripts/textestvis
+++ b/macros/latex/contrib/pagelayout/scripts/textestvis
@@ -13,7 +13,7 @@
# LaTeX version 2008/05/04 or later.
#
-version=1.0.4
+version=1.0.5
OK="$( tput setaf 2 )•$( tput sgr0 )"
FAILED="$( tput setaf 1 )$( tput bold )x$( tput sgr0 )"
diff --git a/macros/latex/contrib/pagelayout/scripts/textestvis.1 b/macros/latex/contrib/pagelayout/scripts/textestvis.1
index 7f7b7df740..69ed008f7d 100644
--- a/macros/latex/contrib/pagelayout/scripts/textestvis.1
+++ b/macros/latex/contrib/pagelayout/scripts/textestvis.1
@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
-.TH "TEXTESTVIS" "1" "January 2023" "" ""
+.TH "TEXTESTVIS" "1" "December 2023" "" ""
.
.SH "NAME"
\fBtextestvis\fR \- visual regression tests for LaTeX
@@ -70,4 +70,4 @@ Prints version information\.
\fBtextestvis\fR was written by Friedemann Bartels\. \fIhttps://github\.com/friedemannbartels\fR
.
.SH "LICENSE"
-Copyright (c) 2022-2023 Friedemann Bartels\. Free use of this software is granted under the terms of the LaTeX Project Public License version 1\.3c or later\.
+Copyright (c) 2022\-2023 Friedemann Bartels\. Free use of this software is granted under the terms of the LaTeX Project Public License version 1\.3c or later\.
diff --git a/macros/latex/contrib/pagelayout/tex/pagelayout.cls b/macros/latex/contrib/pagelayout/tex/pagelayout.cls
index 219520dc7b..fbc4a507ff 100644
--- a/macros/latex/contrib/pagelayout/tex/pagelayout.cls
+++ b/macros/latex/contrib/pagelayout/tex/pagelayout.cls
@@ -13,8 +13,8 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesClass{pagelayout}[2023/03/05 Layout graphic rich documents]
-\def\pagelayoutversion{1.0.4}
+\ProvidesClass{pagelayout}[2023/12/21 Layout graphic rich documents]
+\def\pagelayoutversion{1.0.5}
% packages
\RequirePackage{pgfopts}
@@ -2825,6 +2825,7 @@
\fi
\fi
}
+\newcommand\xpage[2][]{}
\newcommand\pal@standardpage[2][]{
\global\pal@placeholdercounter=0\relax
\ifpal@backcover
@@ -3160,6 +3161,8 @@
\newif\ifpal@placeholderoptions
\newif\ifpal@placeholdermode
\newif\ifpal@isplace
+\newif\ifpal@template
+\newif\ifpal@currentplaceholder
\pal@placeholderoptionstrue
\newcount\pal@placeholdercounter
\newcount\pal@contentcounter
@@ -3218,7 +3221,7 @@
\else
\global\pal@isplacetrue
\fi
- \def\pal@currentplaceholder{}
+ \def\pal@currentplaceholdercontent{}
\ifnum#1=0
\global\advance \pal@placeholdercounter by 1
\else
@@ -3228,9 +3231,22 @@
\def\pal@tmp{\pal@currentcontents}
\pal@placeholdermode{1}
\pal@tmp
+ \pal@templatetrue
\pal@placeholdermode{0}
\pal@putcontent{
- \ifx\pal@emptystring\pal@currentplaceholder
+ \ifpal@currentplaceholder
+ \ifx#2\pal@emptystring
+ \else
+ \pal@setgridframe #2 \\
+ \fi
+ \ifx\pal@currentplaceholderoptions\pal@emptystring
+ \pal@placeholderoptionsfalse
+ \csname \pal@currentplaceholdertype\endcsname{\pal@currentplaceholdercontent}
+ \pal@placeholderoptionstrue
+ \else
+ \csname \pal@currentplaceholdertype\endcsname[\pal@currentplaceholderoptions]{\pal@currentplaceholdercontent}
+ \fi
+ \else
\ifpal@placeholder
\ifx#2\pal@emptystring
\else
@@ -3273,20 +3289,9 @@
\fi
\fi
\fi
- \else
- \ifx#2\pal@emptystring
- \else
- \pal@setgridframe #2 \\
- \fi
- \ifx\pal@currentplaceholderoptions\pal@emptystring
- \pal@placeholderoptionsfalse
- \csname \pal@currentplaceholdertype\endcsname{\pal@currentplaceholder}
- \pal@placeholderoptionstrue
- \else
- \csname \pal@currentplaceholdertype\endcsname[\pal@currentplaceholderoptions]{\pal@currentplaceholder}
- \fi
\fi
}
+ \pal@templatefalse
\endgroup
}
\newcommand\pal@graphic[2][]{
@@ -3299,7 +3304,8 @@
\csname pal@graphic@#2\endcsname[2]{#1}%
\fi
- \edef\pal@currentplaceholder{\pal@graphicoptionfile}
+ \edef\pal@currentplaceholdercontent{\pal@graphicoptionfile}
+ \pal@currentplaceholdertrue
\fi
}
\newcommand\pal@xput[1]{
@@ -3307,7 +3313,8 @@
\ifnum\pal@contentcounter=\pal@placeholdercounter
\def\pal@currentplaceholdertype{xput}
\def\pal@currentplaceholderoptions{}
- \def\pal@currentplaceholder{#1}
+ \def\pal@currentplaceholdercontent{#1}
+ \pal@currentplaceholdertrue
\fi
}
\newcommand\pal@tikz[1]{
@@ -3315,7 +3322,8 @@
\ifnum\pal@contentcounter=\pal@placeholdercounter
\def\pal@currentplaceholdertype{tikzgraphic}
\def\pal@currentplaceholderoptions{}
- \def\pal@currentplaceholder{#1}
+ \def\pal@currentplaceholdercontent{#1}
+ \pal@currentplaceholdertrue
\fi
}
\newcommand\pal@text[2][]{
@@ -3328,7 +3336,8 @@
\edef\pal@currentbordercolor{\pal@defaultbordercolor}
\edef\pal@currentborderopacity{\pal@defaultborderopacity}
\pgfkeys{text,name=default,color=\ifx\pal@pageoptioncolor\pal@emptystring\paloptions@color\else\pal@pageoptioncolor\fi,border radius=\pal@currentborderradius,border width=\pal@currentborderwidth,border color=\pal@currentbordercolor,border opacity=\pal@currentborderopacity,#1}
- \def\pal@currentplaceholder{#2}
+ \def\pal@currentplaceholdercontent{#2}
+ \pal@currentplaceholdertrue
\fi
}
\def\pal@placeholdertypeusetext{usetext}
@@ -3337,7 +3346,8 @@
\ifnum\pal@contentcounter=\pal@placeholdercounter
\edef\pal@currentplaceholdertype{\pal@placeholdertypeusetext}
\def\pal@currentplaceholderoptions{#1}
- \def\pal@currentplaceholder{}
+ \def\pal@currentplaceholdercontent{}
+ \pal@currentplaceholdertrue
\fi
}
\newcommand\pal@rendertemplate[3]{
@@ -3363,6 +3373,7 @@
#3
}
}
+\newcommand\xtemplate[3][]{}
\newcommand\graphic{}
\newcommand\xput{}
\newcommand\tikzgraphic{}
@@ -3390,7 +3401,9 @@
\ifcsname pal@graphic@##2\endcsname%
\csname pal@graphic@##2\endcsname[2]{##1}
\else
- \pgfkeys{graphic,file={##2},scale=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,##1}
+ \ifpal@template\else
+ \pgfkeys{graphic,file={##2},scale=1,vpos=0.5,hpos=0.5,unsharp=\pal@unsharp,##1}
+ \fi
\fi
\fi
\pal@putgraphic{\pal@framey}{\pal@framex}{\pal@frameyy}{\pal@framexx}{\pal@graphicoptionfile}%
@@ -3421,7 +3434,9 @@
\edef\pal@currentborderwidth{\pal@defaultborderwidth}
\edef\pal@currentbordercolor{\pal@defaultbordercolor}
\edef\pal@currentborderopacity{\pal@defaultborderopacity}
- \pgfkeys{text,name=default,color=\ifx\pal@pageoptioncolor\pal@emptystring\paloptions@color\else\pal@pageoptioncolor\fi,border radius=\pal@currentborderradius,border width=\pal@currentborderwidth,border color=\pal@currentbordercolor,border opacity=\pal@currentborderopacity,##1}
+ \ifpal@template\else
+ \pgfkeys{text,name=default,color=\ifx\pal@pageoptioncolor\pal@emptystring\paloptions@color\else\pal@pageoptioncolor\fi,border radius=\pal@currentborderradius,border width=\pal@currentborderwidth,border color=\pal@currentbordercolor,border opacity=\pal@currentborderopacity,##1}
+ \fi
\pal@puttext{\pal@framey}{\pal@framex}{\pal@frameyy}{\pal@framexx}{##2}%
\pal@resetgridframe
}
@@ -3617,20 +3632,24 @@
\def\pal@err@magicknotinstalled{errormagicknotinstalled}
\def\pal@err@inkscapenotinstalled{errorinkscapenotinstalled}
\newcommand\pal@getppi[1]{
- \immediate\openin\pal@scriptresult={|pagelayoutapi getwidth\% "#1"}
+ \immediate\openin\pal@scriptresult={|pagelayoutapi \ifdim\pal@originalgraphicwidth<\pal@originalgraphicheight getwidth\else getheight\fi\% "#1"}
\ifeof\pal@scriptresult
\pal@errmsg@shellaccessforbidden{Ppi not calculated}
\else
\endlinechar=-1
- \read\pal@scriptresult to \pal@graphicwidth
+ \read\pal@scriptresult to \pal@graphicsize
\endlinechar=13
- \ifx\pal@graphicwidth\pal@emptystring
+ \ifx\pal@graphicsize\pal@emptystring
\pal@errmsg@shellaccessfailed{Ppi not calculated}
\else
- \ifx\pal@graphicwidth\pal@err@magicknotinstalled
+ \ifx\pal@graphicsize\pal@err@magicknotinstalled
\pal@errmsg@magicknotinstalled{Ppi not calculated}
\else
- \pgfmathqparse{(\pal@originalgraphicwidth - \pal@cropleft - \pal@cropright) / \pal@originalgraphicwidth * \pal@graphicwidth pt / \the\width * 72.27pt}
+ \ifdim\pal@originalgraphicwidth<\pal@originalgraphicheight
+ \pgfmathqparse{(\pal@originalgraphicwidth - \pal@cropleft - \pal@cropright) / \pal@originalgraphicwidth * \pal@graphicsize pt / \the\width * 72.27pt}
+ \else
+ \pgfmathqparse{(\pal@originalgraphicheight - \pal@croptop - \pal@cropbottom) / \pal@originalgraphicheight * \pal@graphicsize pt / \the\height * 72.27pt}
+ \fi
\pgfmathint{\pgfmathresult}
\edef\pal@graphicdensity{\pgfmathresult}