summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hvfloat/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/hvfloat/latex')
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-0.inc130
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-1.inc474
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-2.inc114
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat.sty665
4 files changed, 779 insertions, 604 deletions
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc
new file mode 100644
index 0000000000..a39a994c76
--- /dev/null
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc
@@ -0,0 +1,130 @@
+%% Herbert Voss <hvoss@tug.org>
+%% Copyright (C) 2023
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%%
+%% ||1in+evenside --- |1in+oddside ---|| Image is 2\paperwidth wide, height is variable or user set
+%
+\def\do@hvFloat@doubleFullPage#1{% image on left and right page with caption before/below/right/after
+ % #1-> not used, caption always below lefr or below right
+ \setcounter{topnumber}{1}%
+ \setcounter{dbltopnumber}{1}%
+ \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
+% \ifx\hvSet@capPos\hv@Right\else\ifx\hvSet@capPos\hv@Left\else
+% \let\hvSet@capPos\hv@Right
+% \fi\fi
+ \ifx\hv@caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
+ \ifx\hv@subcaption@format\@empty\else
+ \expandafter
+ \captionsetup\expandafter[\expandafter s\expandafter u\expandafter b\expandafter]\expandafter
+ {\hv@subcaption@format}%
+ \fi
+ \let\c@hv@tempCNTfigA\c@figure
+ \let\c@hv@tempCNTtabA\c@table
+% \checkoddpage
+ \ifoddpage
+ \if@twocolumn
+ \if@firstcolumn
+ \afterpage{afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}}% 2nd Col and newpage
+ \else
+ \do@hvFloat@doubleFullPage@ObjectAndCaption% odd, 2nd col -> no newpage
+ \fi
+ \else % onecol
+ \afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}% oddpage->newpage
+ \fi % end \if@twocolumn
+ \else% evenpage
+ \if@twocolumn
+ \if@firstcolumn
+ \afterpage{\afterpage{\afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}}}% ->2nd Col left page and newpage
+ \else
+ \afterpage{\afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}}% ->newpage ( 2columns)
+ \fi
+ \else % onecol
+ \afterpage{\afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}}% evenpage->newpage->newpage
+ \fi % end \if@twocolumn
+ \fi% main ifoddpage
+ \endgroup% started at main macro \hvFloat
+}
+
+\def\do@hvFloat@doubleFullPage@ObjectAndCaption{%
+ \begin{\hv@floatType*}[t]
+ \hv@set@noverticalSpace
+ \hfuzz=\maxdimen
+ \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
+ \hv@leftPageObjectWidth=\dimexpr\paperwidth-\hvSet@bindCorrection%
+ \savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep}%-\baselineskip-\parskip+1.5\lineskip}% no interlineskip
+ \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
+ \clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
+ \ifx\hv@label\@empty
+ \else
+ \ifx\hv@floatType\hv@figure
+ \global\refstepcounter{hv@tempCNTfigA}%
+ \else
+ \global\refstepcounter{hv@tempCNTtabA}% before caption
+ \fi
+ \label{\hv@label}%
+ \fi
+ \ifx\hvSet@capPos\hv@Left % left side a caption
+ \ifhv@onlyText
+ \hv@longCap
+ \else
+ \ifx\hv@shortCap\@empty
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ \else
+ \ifhv@global@sameHeight
+ \par\noindent\phantom{\parbox{\textwidth}{\caption*{\hv@longCap}}}%
+% \vspace{-2pt}%
+ \fi
+ \fi
+ \hv@reset@noverticalSpace
+ \end{\hv@floatType*}%
+ % start right half of the image ----------------- RIGHT
+ \begin{\hv@floatType*}[t]
+ \hv@set@noverticalSpace
+ \hfuzz=\maxdimen
+% \let\c@hv@tempCNTfigA\c@figure
+% \let\c@hv@tempCNTtabA\c@table
+ \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
+ \hv@leftPageObjectWidth=\dimexpr\paperwidth-\hvSet@bindCorrection
+ \savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep}%-\baselineskip-\parskip+1.5\lineskip}% no interlineskip
+ \hspace*{\the\dimexpr-1in-\oddsidemargin+\hvSet@bindCorrection}%
+ \clipbox*{\the\hv@leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}%
+ \ifx\hv@label\@empty
+ \else
+ \ifx\hv@floatType\hv@figure
+ \global\refstepcounter{hv@tempCNTfigA}%
+ \else
+ \global\refstepcounter{hv@tempCNTtabA}% before caption
+ \fi
+ \label{\hv@label}%
+ \fi
+ \ifx\hvSet@capPos\hv@Left % left side a caption
+ \ifhv@global@sameHeight
+ \par\noindent\phantom{\parbox{\textwidth}{\caption*{\hv@longCap}}}%
+% \vspace{-2pt}%
+ \fi
+ \else
+ \ifhv@onlyText
+ \hv@longCap
+ \else
+ \ifx\hv@shortCap\@empty
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ \fi
+ \hv@reset@noverticalSpace
+ \end{\hv@floatType*}%
+}
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc
new file mode 100644
index 0000000000..e5e0ead4bb
--- /dev/null
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc
@@ -0,0 +1,474 @@
+%% Herbert Voss <hvoss@tug.org>
+%% Copyright (C) 2023
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%%
+%% ||1in+evenside --- |1in+oddside ---||
+%
+\def\do@hvFloat@doubleFULLPAGE#1{% image on left and right page with caption before/below/right/after
+ % #1-> 0/1 caption under/right
+ \hvfloat@typeout{>>> do@hvFloat@doubleFULLPAGE: #1}%
+ \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
+ \ifx\hv@caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
+ \ifx\hv@subcaption@format\@empty\else
+ \expandafter
+ \captionsetup\expandafter[\expandafter s\expandafter u\expandafter b\expandafter]\expandafter
+ {\hv@subcaption@format}%
+ \fi
+ \ifx\hvSet@capPos\hv@After \global\hv@@capPos=1
+ \else
+ \ifx\hvSet@capPos\hv@Before \global\hv@@capPos=0
+ \else
+ \global\hv@@capPos=2 % other caption type
+ \fi\fi
+ %\checkoddpage
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \global\hv@tempWidthA=\dimexpr-\oddsidemargin-1in-\parindent+\hvSet@bindCorrection% the width of the right side offset
+ \global\hv@tempWidthB=\dimexpr\ht\hvCaptionBox+\wd\hvObjectBox+2\hvSet@bindCorrection%
+ \global\hv@leftPageObjectWidth=\dimexpr\paperwidth-\hvSet@bindCorrection%
+% \savebox\hv@leftBox{\clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}}%
+% \savebox\hv@rightBox{\clipbox*{\the\hv@leftPageObjectWidth{} \depth{} \width{} \height}{\usebox\hvObjectBox}}%
+% \expandafter\captionsetup\expandafter{\hv@caption@format}%
+ \ifoddpage
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage}%
+ \ifcase\hv@@capPos % =0 Caption before
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before (0)}%
+ \if@twocolumn
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn}%
+ \if@firstcolumn
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn/firstcolumn}%
+ \ifhv@twoColumnCaption
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption before/twocolumn/firstcolumn/twoColumnCaption}%
+ \set@Normal@Bottom@Caption*
+ \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionBefore}%
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption before/twocolumn/firstcolumn/oneColCaption}%
+ \afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore}%
+ \fi
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn/secondcolumn}%
+ \set@Normal@Bottom@Caption
+ \do@hvFloat@doubleFULLPAGE@CaptionBefore
+ \fi
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/onecolumn}%
+ \set@Normal@Bottom@Caption
+ \do@hvFloat@doubleFULLPAGE@CaptionBefore
+ \fi
+ \or % =1 Caption after
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after (1)}%
+ \ifhv@twoColumnCaption
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption (1)}%
+ \if@firstcolumn
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/firstcolumn (1)}%
+ \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol}%
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/secondcolumn (1)}%
+ \do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol
+ \fi
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/oneColCaption (1)}%
+ \if@twocolumn
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/twocolumn (1)}%
+ \if@firstcolumn
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption after/twoColCaption/twocolumn/firstcolumn (1)}%
+ \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter}%
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/twocolumn/secondcolumn (1)}%
+ \do@hvFloat@doubleFULLPAGE@CaptionAfter
+ \fi
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/onecolumn (1)}%
+ \do@hvFloat@doubleFULLPAGE@CaptionAfter
+ \fi
+ \fi
+ \else% \ifcase >1 all other Captions
+ \if@twocolumn
+ \if@firstcolumn
+ \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}%
+ \else
+ \do@hvFloat@doubleFULLPAGE@CaptionOther{#1}%
+ \fi
+ \else % \if@twocolumn
+ \do@hvFloat@doubleFULLPAGE@CaptionOther{#1}%
+ \fi
+ \fi% \ifcase
+ \else% we have an even page
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage (1 -- \thepage)}%
+ \ifcase\hv@@capPos% Before
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before (0 -- \thepage)}%
+ \if@twocolumn
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before/twocolumn (0 -- \thepage)}%
+ \if@firstcolumn
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before/twocolumn/firstcolumn (0 -- \thepage)}%
+ \ifhv@twoColumnCaption
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2->evenpage/caption before/twocolumn/firstcolumn/twocolCap (0 -- \thepage)}%
+ \afterpage{\afterpage\set@Normal@Bottom@Caption*\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}%
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2 -> evenpage/caption before/twocolumn/firstcolumn/oneColCap (0 -- \thepage)}%
+ \afterpage{\afterpage{\afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}}%
+ \fi
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2->evenpage/caption before/twocolumn/secondcolumn (0 -- \thepage)}%
+ \afterpage{\afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}%
+ \fi
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption before/onecolumn (0 -- \thepage)}%
+ \afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore}%
+ \fi
+ \or % capPos after
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after (1 -- \thepage)}%
+ \if@twocolumn
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn (1 -- \thepage)}%
+ \if@firstcolumn
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn/firstcolumn (1 -- \thepage)}%
+ \ifhv@twoColumnCaption
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/twocolumn/firstcolumn/twoColCaption (1 -- \thepage)}%
+ \afterpage{\afterpage\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{#1}}}%
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/twocolumn/firstcolumn/oneColCaption (1 -- \thepage)}%
+ \afterpage{\afterpage\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter{#1}}}%
+ \fi
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn/secondcolumn (1 -- \thepage)}%
+ \ifhv@twoColumnCaption
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage1 2 -> evenpage/caption after/twocolumn/secondcolumn/twoColCaption (1 -- \thepage)}%
+ \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{#1}}}%
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage1 2 -> evenpage/caption after/twocolumn/secondcolumn/oneColCaption (1 -- \thepage)}%
+ \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter{#1}}}%
+ \fi
+ \fi
+ \else
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/onecolumn (1 -- \thepage)}%
+ \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter}%
+ \fi
+ \else % \ifcase Any other caption
+ \if@twocolumn
+ \if@firstcolumn
+ \afterpage{\afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}}}%
+ \else
+ \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}}%
+ \fi
+ \else
+ \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}%
+ \fi
+ \fi% \ifcase
+ \fi% main ifoddpage
+ \endgroup% started at main macro \hvFloat
+}
+
+\def\set@Normal@Bottom@Caption{\@ifnextchar*\set@Normal@Bottom@CaptionStar\set@Normal@Bottom@Caption@}
+\def\set@Normal@Bottom@Caption@{%
+ \begin{\hv@floatType}[!b]
+ \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
+ \ifhv@separatorLine\drawSepLine\fi
+% \expandafter\captionsetup\expandafter{\hv@caption@format}%
+ \ifhv@onlyText
+ \hv@longCap
+ \else
+ \ifx\hv@shortCap\@empty
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ \end{\hv@floatType}%
+}
+\def\set@Normal@Bottom@CaptionStar*{%
+ \begin{\hv@floatType*}[!b]
+ \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
+ \ifhv@separatorLine\drawSepLine\fi
+% \expandafter\captionsetup\expandafter{\hv@caption@format}%
+ \ifhv@onlyText
+ \hv@longCap
+ \else
+ \ifx\hv@shortCap\@empty
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ \end{\hv@floatType*}%
+}
+
+\def\do@hvFloat@doubleFULLPAGE@CaptionBefore{%
+ \afterpage{%
+ \hfuzz=\maxdimen
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip
+ \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
+ \thispagestyle{empty}%
+ \ifx\hv@floatType\hv@figure
+ \global\refstepcounter{hv@tempCNTfigB}%
+ \else
+ \global\refstepcounter{hv@tempCNTtabB}% before caption
+ \fi
+ \expandafter\label\expandafter{\hv@label}%
+ \clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
+ \afterpage{%
+ \if@twocolumn\newpage\null\newpage\fi
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \thispagestyle{empty}%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox
+ \hspace*{\hv@tempWidthA}%
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}%
+ \ifx\hv@floatType\hv@figure
+ \global\refstepcounter{hv@tempCNTfigA}%
+ \else
+ \global\refstepcounter{hv@tempCNTtabA}% before caption
+ \fi
+ \expandafter\label\expandafter{\hv@label-2}%
+ \newpage\if@twocolumn\null\newpage\fi
+ }}%
+}
+
+\newif\ifhv@temp
+
+\def\do@hvFloat@doubleFULLPAGE@CaptionAfter{%
+ \afterpage{%
+ \hfuzz=\maxdimen
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip
+ \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
+ \thispagestyle{empty}%
+ \clipbox*{0 \the\dp\hvObjectBox{} \the\hv@leftPageObjectWidth{} \the\ht\hvObjectBox}{\usebox\hvObjectBox}%
+ \ifx\hv@floatType\hv@figure
+ \refstepcounter{hv@tempCNTfigA}%
+ \else
+ \refstepcounter{hv@tempCNTtabA}% before caption
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label}\fi
+ \newpage\if@twocolumn\null\newpage\fi
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \thispagestyle{empty}%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox
+ \hspace*{\hv@tempWidthA}%
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}%
+ \ifx\hv@floatType\hv@figure
+ \refstepcounter{hv@tempCNTfigB}%
+ \else
+ \refstepcounter{hv@tempCNTtabB}% before caption
+ \fi
+ \expandafter\label\expandafter{\hv@label-2}%
+ \newpage\if@twocolumn\null\newpage\fi
+ \begin{\hv@floatType}[!b]
+ \ifhv@separatorLine\drawSepLine\fi
+% \expandafter\captionsetup\expandafter{\hv@caption@format}%
+ \ifhv@onlyText
+ \hv@longCap
+ \else
+ \ifx\hv@shortCap\@empty
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ \end{\hv@floatType}%
+ }%
+}
+
+\def\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{%
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: start} %
+ \afterpage{%
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: afterpage start} %
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip
+ \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
+ \thispagestyle{empty}%
+ \ifx\hv@floatType\hv@figure
+ \refstepcounter{hv@tempCNTfigA}%
+ \else
+ \refstepcounter{hv@tempCNTtabA}% before caption
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label}\fi
+ \clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
+ \newpage\if@twocolumn\null\newpage\fi
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: insert newpage} %
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \thispagestyle{empty}%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox
+ \hspace*{\hv@tempWidthA}%
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}%
+ \ifx\hv@floatType\hv@figure
+ \refstepcounter{hv@tempCNTfigB}%
+ \else
+ \refstepcounter{hv@tempCNTtabB}% before caption
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label-2}\fi
+ \newpage\if@twocolumn\null\newpage\fi
+ \begin{\hv@floatType*}[!b]
+ \hv@twoColumnCaptiontrue
+ \ifhv@separatorLine\drawSepLine\fi
+% \expandafter\captionsetup\expandafter{\hv@caption@format}%
+ \ifhv@onlyText
+ \hv@longCap
+ \else
+ \ifx\hv@shortCap\@empty
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ \end{\hv@floatType*}%
+ }%
+ \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: afterpage done} %
+}
+
+\def\do@hvFloat@doubleFULLPAGE@CaptionOther#1{%
+ \afterpage{%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox
+ \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \thispagestyle{empty}%
+ \hfuzz=\maxdimen
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \clipbox*{0 \depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
+ \ifx\hv@floatType\hv@figure
+ \refstepcounter{hv@tempCNTfigA}%
+ \else
+ \refstepcounter{hv@tempCNTtabA}% before caption
+ \fi
+ \label{\hv@label}%
+ \afterpage{%
+ \if@twocolumn\newpage\if@firstcolumn\else\null\newpage\fi\fi
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \thispagestyle{empty}%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox
+ \hspace*{\hv@tempWidthA}%
+ \clipbox*{\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}%
+ \ifx\hv@floatType\hv@figure
+ \refstepcounter{hv@tempCNTfigB}%
+ \else
+ \refstepcounter{hv@tempCNTtabB}% before caption
+ \fi
+ \expandafter\label\expandafter{\hv@label-2}%
+ \savebox\hvCaptionBox{\parbox{0.9\ht\hvObjectBox}{\captionof*{\hv@floatType}{\hv@longCap}}}%
+ \ifnum#1 > 0\relax % rotation with 90°
+% \setlength\hv@tempWidthB{\dimexpr\ht\hvCaptionBox+\wd\hvObjectBox+2\hvSet@bindCorrection}%
+ \ifdim\hv@tempWidthB < 2\paperwidth
+ \rotatebox[origin=lb]{90}{\makebox[\paperheight][c]{\parbox{0.8\ht\hvObjectBox}{%
+% \expandafter\captionsetup\expandafter{\hv@caption@format}%
+ \ifhv@onlyText
+ \hv@longCap
+ \else
+ \ifx\hv@shortCap\@empty
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \fi
+ }}}% rotatebox
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ \else% ifdim: no space left on page
+ \put(-2\ht\hvCaptionBox,0.5\ht\hvObjectBox){\makebox(0,0){\rotatebox{90}{\minipage{\textwidth}\centering
+ \parbox{0.8\textwidth}{%
+ \ifhv@onlyText
+ \hv@longCap
+ \else
+ \ifx\hv@shortCap\@empty
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \fi
+ }%
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ \endminipage}}}%
+ \fi
+ \else% ifnum, caption not rotated, under or over the right page
+ \hv@tempWidthA=\the\dimexpr\paperheight-\ht\hvObjectBox\relax
+ \ifdim\hv@tempWidthA > \ht\hvCaptionBox
+ \else
+ \put(\the\dimexpr1.5\paperwidth-\wd\hvObjectBox-\hvSet@bindCorrection,\the\dimexpr\ht\hvCaptionBox+\abovecaptionskip+\belowcaptionskip){\makebox[0pt][c]{\parbox{\textwidth}{%%
+% \expandafter\captionsetup\expandafter{\hv@caption@format}%
+ \ifhv@onlyText
+ \hv@longCap
+ \else
+ \ifx\hv@shortCap\@empty
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \fi
+ }}}%
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ \fi
+ \fi% end \ifnum#1>0
+ \newpage\if@twocolumn\null\newpage\fi
+ }%
+ }%
+}
+
+
+\def\setBottomCaption{%
+ \ifhv@twoColumnCaption
+ \begin{\hv@floatType*}[!b]%
+ \else
+ \begin{\hv@floatType}[!b]%
+ \fi
+ \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
+ \ifhv@separatorLine\drawSepLine\fi
+ \par
+ \usebox\hvCaptionBox
+ \ifhv@twoColumnCaption
+ \end{\hv@floatType*}%
+ \else
+ \end{\hv@floatType}%
+ \fi
+}
+
+\def\setPageObject{%
+ \hvfloat@typeout{>>>> setPageObject/start environment ...}%
+ \afterpage{\checkoddpage}%
+ \ifhv@star
+ \begin{\hv@floatType*}[p]%
+ \else
+ \begin{\hv@floatType}[p]%
+ \fi
+ \hv@tempcnt=\@floatpenalty% suppress "float too big" message
+ \hfuzz=\maxdimen
+ \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
+ \ifhv@FULLPAGE
+ \hvfloat@typeout{>>>> setPageObject/FULLPAGE}%
+ \@floatpenalty=\z@% no message that float too large
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep}%-0.5\baselineskip%
+ \if@twoside
+ \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside}%
+ \ifoddpage
+ \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside/oddpage (\thepage)}%
+ \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}%
+ \else
+ \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside/evenpage (\thepage)}%
+ \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
+ \fi
+ \else
+ \hvfloat@typeout{>>>> setPageObject/FULLPAGE/oneside}%
+ \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}%
+ \fi
+ \hvfloat@typeout{>>>> setPageObject/FULLPAGE/set pagestyle empty}%
+ \AtBeginShipoutNext{\thispagestyle{empty}}% to prevent heading/footer
+% \afterpage{\AddToHookNext{shipout/after}{\thispagestyle{empty}}}%
+ \usebox\hvObjectBox
+ \else
+ \hvfloat@typeout{>>>> setPageObject/NO FULLPAGE}%
+ \usebox\hvObjectBox
+ \fi
+ \hvfloat@typeout{>>>> setPageObject/stop environment}%
+ \ifhv@star
+ \end{\hv@floatType*}%
+ \else
+ \end{\hv@floatType}%
+ \fi
+ \@floatpenalty=\hv@tempcnt% restore
+}
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc
new file mode 100644
index 0000000000..c930479fae
--- /dev/null
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc
@@ -0,0 +1,114 @@
+%%
+%% Herbert Voss <hvoss@tug.org>
+%% Copyright (C) 2023
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% ||1in+evenside --- |1in+oddside ---||
+%
+
+\def\do@hvFloat@doublePAGE#1{% image on left and right page with caption on the right ----------------------------------
+ % #1-> 0/1 caption under/right
+% \global\setlength\hv@tempWidthA{\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection}%
+% \global\setlength\hv@leftPageObjectWidth{\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection}%
+ \expandafter\global\expandafter\savebox\expandafter\hvObjectBox\expandafter{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \expandafter\global\expandafter\savebox\expandafter\hv@boxLeftPage\expandafter{\clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}}%
+ \expandafter\global\expandafter\savebox\expandafter\hv@boxRightPage\expandafter{\clipbox*{\hv@leftPageObjectWidth{} -\depth{} \width{} \height}{\usebox\hvObjectBox}}%
+ %\checkoddpage
+ \ifoddpage
+ \hvfloat@typeout{do@hvFloat@doublePAGE: oddpage}%
+ \if@twocolumn
+ \if@firstcolumn
+ \hvfloat@typeout{do@hvFloat@doublePAGE: ifoddpage->twocolumn->firstcolumn}%
+ \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}%
+ \else
+ \hvfloat@typeout{do@hvFloat@doublePAGE: ifoddpage->twocolumn->secondcolumn}%
+ \do@hvFloat@doublePAGECaptionRight{#1}%
+ \fi
+ \else
+ \do@hvFloat@doublePAGECaptionRight{#1}%
+ \fi
+ \else
+ \hvfloat@typeout{do@hvFloat@doublePAGE: evenpage}%
+ \if@twocolumn
+ \if@firstcolumn
+ \afterpage{\afterpage{\afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}}}%
+ \else
+ \afterpage{\afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}}%
+ \fi
+ \else
+ \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}% onecolumn/left page
+ \fi
+ \fi
+ \endgroup% startet at main macro
+}
+%
+\def\do@hvFloat@doublePAGECaptionRight#1{% image on left and right page with caption on the right ----------------------------------
+ % #1-> 0/1 caption under/right
+ \hvfloat@typeout{do@hvFloat@doublePAGECaptionRight->start}%
+ \afterpage{%
+ \hfuzz=\maxdimen
+ \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
+ \ifx\hv@caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
+ \ifx\hv@subcaption@format\@empty\else
+ \expandafter
+ \captionsetup\expandafter[\expandafter s\expandafter u\expandafter b\expandafter]\expandafter
+ {\hv@subcaption@format}%
+ \fi
+ \ifhv@useOBox
+ \global\let\hvObjectBox\hvOBox
+ \else
+ \global\savebox\hvObjectBox{\hv@floatObject}%
+ \fi
+ \noindent
+ \global\hv@tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection%
+ \global\hv@leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection%
+ \clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
+ \ifx\hv@label\@empty\else\label{\hv@label}\fi
+ \null\newpage\if@twocolumn\null\newpage\fi
+ \expandafter\global\expandafter\savebox\expandafter\hvObjectBox\expandafter{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ \noindent
+ \hspace*{\dimexpr-\hv@tempWidthA}%
+ \clipbox*{\the\hv@leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}%
+ \ifx\hv@label\@empty\else\label{\hv@label-2}\fi
+ \begingroup
+ \ifnum#1>0
+ \medskip
+ \ifdim\dp\hvObjectBox > \z@
+ \rotatebox[origin=c]{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{%
+ \ifx\relax\hv@shortCap\relax
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ }}%
+ \else
+ \rotatebox{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{%
+ \ifx\relax\hv@shortCap\relax
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ }}%
+ \fi
+ \else% caption not rotated
+ \par\noindent
+ \parbox{\textwidth}{%
+ \expandafter\hvFloatSet\expandafter{\hv@save@setting,capFormat={font={tiny},labelsep=newline}}%
+ \ifx\relax\hv@shortCap\relax
+ \captionof{\hv@floatType}{\hv@longCap}%
+ \else
+ \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
+ }%
+ \fi
+ \endgroup
+ \newpage\if@twocolumn\null\newpage\fi
+ }%
+}
+%
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat.sty b/macros/latex/contrib/hvfloat/latex/hvfloat.sty
index be6acdf49b..41c8042a4c 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat.sty
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat.sty
@@ -1,4 +1,4 @@
-%% $Id: hvfloat.sty 723 2023-05-17 17:27:20Z herbert $
+%% $Id: hvfloat.sty 774 2023-10-16 13:44:29Z herbert $
%%
%%
%% IMPORTANT NOTICE:
@@ -16,8 +16,8 @@
%% `hvfloat' offers rotating of captions and objects for floats
%%
\NeedsTeXFormat{LaTeX2e}
-\def\fileversion{2.46}
-\def\filedate{2023/05/16}
+\def\fileversion{2.47}
+\def\filedate{2023/10/16}
\ProvidesPackage{hvfloat}[\filedate\space v\fileversion\space special floating objects (hv)]
\let\hvFloatFileVersion\fileversion
%
@@ -189,6 +189,7 @@
\newif\ifhv@fullpage
\newif\ifhv@FULLPAGE
+\newif\ifhv@doubleFullPage
\newif\ifhv@doubleFULLPAGE
\newif\ifhv@doublePAGE
\newif\ifhv@doublePage
@@ -209,33 +210,39 @@
\define@key{hvSet}{fullpage}[true]{%
\global\@nameuse{hv@fullpage#1}%
\hv@doublePagefalse\hv@doublePAGEfalse\hv@doubleFULLPAGEfalse
- \hv@FULLPAGEfalse
+ \hv@FULLPAGEfalse\hv@doubleFullPagefalse
\hvfloat@typeout{>>>>Option fullpage}%
}
\define@key{hvSet}{FULLPAGE}[true]{%
\global\@nameuse{hv@FULLPAGE#1}%
\hv@doublePagefalse\hv@doublePAGEfalse\hv@doubleFULLPAGEfalse
- \hv@fullpagefalse
+ \hv@fullpagefalse\hv@doubleFullPagefalse
\hvfloat@typeout{>>>>Option FULLPAGE}%
}
\define@key{hvSet}{doubleFULLPAGE}[true]{%
\global\@nameuse{hv@doubleFULLPAGE#1}%
\hv@doublePagefalse\hv@doublePAGEfalse
- \hv@fullpagefalse\hv@FULLPAGEfalse
+ \hv@fullpagefalse\hv@FULLPAGEfalse\hv@doubleFullPagefalse
\hvfloat@typeout{>>>>Option doubleFULLPAGE->True / doublePAGE->False}%
}
\define@key{hvSet}{doublePAGE}[true]{%
\global\@nameuse{hv@doublePAGE#1}%
\hv@doublePagefalse\hv@doubleFULLPAGEfalse
- \hv@fullpagefalse\hv@FULLPAGEfalse
+ \hv@fullpagefalse\hv@FULLPAGEfalse\hv@doubleFullPagefalse
\hvfloat@typeout{>>>>Option doublePAGE->True / doubleFULLPAGE->False}%
}
\define@key{hvSet}{doublePage}[true]{%
\global\@nameuse{hv@doublePage#1}%
\hv@doublePAGEfalse\hv@doubleFULLPAGEfalse
- \hv@fullpagefalse\hv@FULLPAGEfalse
+ \hv@fullpagefalse\hv@FULLPAGEfalse\hv@doubleFullPagefalse
\hvfloat@typeout{>>>>Option doublepage->True / doubleFULLPAGE->False}%
}
+\define@key{hvSet}{doubleFullPage}[true]{%
+ \global\@nameuse{hv@doubleFullPage#1}%
+% \hv@doublePAGEfalse\hv@doubleFULLPAGEfalse\hv@doublePagefalse
+% \hv@fullpagefalse\hv@FULLPAGEfalse
+ \hvfloat@typeout{>>>>Option doublefullPage->True / doubleFULLPAGE->False}%
+}
\define@key{hvSet}{bindCorr}[0pt]{%
\def\hv@temp{#1}%
\ifx\hv@temp\hv@Inner
@@ -397,11 +404,21 @@
\def\Gin@eheight{\paperheight}%
\Gin@boolkey{false}{iso}%
}
+\define@key{Gin}{doubleFullPage}[true]{%
+ \def\Gin@ewidth{2\paperwidth}%
+% \def\Gin@eheight{\paperheight}%
+ \Gin@boolkey{false}{iso}%
+}
\define@key{Gin}{doublefullPage}[true]{%
\def\Gin@ewidth{\the\dimexpr2\paperwidth-2in-2\evensidemargin}%
% \def\Gin@eheight{\paperheight}%
\Gin@boolkey{true}{iso}%
}
+\define@key{Gin}{doubleFullPagebindCorr}[true]{%
+ \def\Gin@ewidth{\the\dimexpr2\paperwidth-2\hvSet@bindCorrection\relax}%
+% \def\Gin@eheight{\paperheight}%
+ \Gin@boolkey{false}{iso}%
+}
\define@key{Gin}{doubleFULLPAGEbindCorr}[true]{%
\def\Gin@ewidth{\the\dimexpr2\paperwidth-2\hvSet@bindCorrection\relax}%
\def\Gin@eheight{\paperheight}%
@@ -500,8 +517,8 @@
\def\hvFloat{\@ifnextchar*% Main macro
- {\global\hv@startrue\hv@maxImageWidth=\textwidth\hvFloat@i}%
- {\global\hv@starfalse\hv@maxImageWidth=\columnwidth\hvFloat@i*}%
+ {\checkoddpage\global\hv@startrue\hv@maxImageWidth=\textwidth\hvFloat@i}%
+ {\checkoddpage\global\hv@starfalse\hv@maxImageWidth=\columnwidth\hvFloat@i*}%
}
\def\hvFloat@i*{\@ifnextchar[{\do@hvFloat}{\do@hvFloat[]}}
@@ -618,20 +635,26 @@
\setlength\hvCapWidth{\textheight}%
\expandafter\do@hvFloat@doubleFULLPAGE\@@temp% fullpage with caption rotated or under on an odd page
\else
- \ifhv@doublePAGE
- \hvfloat@typeout{>>>> do@@hvFloat: doublePAGE true}%
- \expandafter\do@hvFloat@doublePAGE\@@temp% fullpage with caption rotated or under on an odd page
+ \ifhv@doubleFullPage
+ \hvfloat@typeout{>>>> do@@hvFloat: doubleFullPage true}%
+ \setlength\hvCapWidth{\textwidth}%
+ \expandafter\do@hvFloat@doubleFullPage\@@temp% fullpage with caption under an odd page
\else
- \ifhv@doublePage
- \hvfloat@typeout{>>>> do@@hvFloat: doublePage true}%
- \expandafter\do@hvFloat@doublePage\@@temp% fullpage with caption rotated or under on an odd page
+ \ifhv@doublePAGE
+ \hvfloat@typeout{>>>> do@@hvFloat: doublePAGE true}%
+ \expandafter\do@hvFloat@doublePAGE\@@temp% fullpage with caption rotated or under on an odd page
\else
- \ifhv@inMargin
- \hvfloat@typeout{>>>> do@@hvFloat: inMargin true}%
- \do@@@hvFloatInMargin
+ \ifhv@doublePage
+ \hvfloat@typeout{>>>> do@@hvFloat: doublePage true}%
+ \expandafter\do@hvFloat@doublePage\@@temp% fullpage with caption rotated or under on an odd page
\else
- \hvfloat@typeout{>>>> do@@hvFloat: no special caption}%
- \do@@@hvFloat
+ \ifhv@inMargin
+ \hvfloat@typeout{>>>> do@@hvFloat: inMargin true}%
+ \do@@@hvFloatInMargin
+ \else
+ \hvfloat@typeout{>>>> do@@hvFloat: no special caption}%
+ \do@@@hvFloat
+ \fi
\fi
\fi
\fi
@@ -804,7 +827,7 @@
\begin{\hv@floatType}% Start the floating environment
\fi
\fi
- \checkoddpage
+ %%\checkoddpage
\ifx\hvSet@objectPos\hv@Right\raggedleft\fi
\ifx\hvSet@objectPos\hv@Center
\ifhv@nonFloat\hspace*{\fill}\else\centering\fi
@@ -1074,7 +1097,7 @@
\ifx\hvSet@floatPos\@empty \else\@namedef{fps@\hv@floatType}{\hvSet@floatPos}\fi
\noindent
\begingroup% Start the nonfloat part
- \checkoddpage
+ %\checkoddpage
\ifx\hvSet@objectPos\hv@Right \raggedleft\fi
\ifx\hvSet@objectPos\hv@Center \hspace*{\fill}\fi
\ifx\hvSet@objectPos\hv@Outer \ifoddpage\raggedleft\fi\fi
@@ -1231,7 +1254,7 @@
\fi
\fi
\hvfloat@typeout{>>>do@@@@hvFloat: hv@capPos is \the\hv@@capPos}%
- \checkoddpage
+ %\checkoddpage
\hvfloat@typeout{>>>do@@@@hvFloat: set floattype}%
\set@caption@object{\hv@floatType}% set caption and object into a box
\ifcase\hv@@capPos% caption before object 0-> _always_ left
@@ -1426,13 +1449,13 @@
\endminipage}%
\savebox\hvObjectBox{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
\ifnum#1=0\relax % no rotation, caption below
- \hvfloat@typeout{Texthöhe: \the\textheight}%
- \hvfloat@typeout{Objekthöhe: \the\ht\hvObjectBox}%
- \hvfloat@typeout{Captionhöhe: \the\ht\hvCaptionBox}%
+% \hvfloat@typeout{Texthöhe: \the\textheight}%
+% \hvfloat@typeout{Objekthöhe: \the\ht\hvObjectBox}%
+% \hvfloat@typeout{Captionhöhe: \the\ht\hvCaptionBox}%
\@tempdima=\dimexpr\ht\hvObjectBox+\ht\hvCaptionBox+\abovecaptionskip+\belowcaptionskip +\textfloatsep\relax%+\floatsep\relax
- \hvfloat@typeout{Summe: \the\@tempdima}%
+% \hvfloat@typeout{Summe: \the\@tempdima}%
\ifdim\@tempdima > \dimexpr\textheight-\hv@minTextlines\relax
- \hvfloat@typeout{hvfloat: switched to floattype p}%
+% \hvfloat@typeout{hvfloat: switched to floattype p}%
\hv@switchTypetrue
\fi
\fi
@@ -1440,7 +1463,7 @@
\ifhv@forceOutput
\do@hvFloat@doublePAGECaptionRight{#1}% no cheque
\else
- \checkoddpage
+ %\checkoddpage
\ifoddpage
\hvfloat@typeout{do@hvFloat@doublePage:oddpage}%
\if@twocolumn
@@ -1456,7 +1479,7 @@
\afterpage{\do@hvFloat@doublePageCaptionRight{#1}}%}%
\fi
\else
- \hvfloat@typeout{do@hvFloat@doublePage:oddpage->twocolumn->secondcolumn}%
+% \hvfloat@typeout{do@hvFloat@doublePage:oddpage->twocolumn->secondcolumn}%
\ifhv@tugboat
\do@hvFloat@doublePageCaptionRight{#1}%
\else
@@ -1494,7 +1517,8 @@
\ifhv@switchType
\afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}%
\else
- \afterpage{\afterpage{\do@hvFloat@doublePageCaptionRight{#1}}}%
+ %\afterpage{
+ \afterpage{\do@hvFloat@doublePageCaptionRight{#1}}%}%
\fi
\fi
\else% onecolumn
@@ -1526,7 +1550,7 @@
}
%
\def\do@hvFloat@doublePageCaptionRightObjectLeft#1{% left part of the object
- \begin{\hv@floatType}[!t]
+ \begin{\hv@floatType*}[!t]
\hvfloat@typeout{>>>doublePage: begin with left side of the object \hv@floatObject}%
\hv@set@noverticalSpace
\hfuzz=\maxdimen
@@ -1552,7 +1576,7 @@
\fi
\hv@reset@noverticalSpace
\hvfloat@typeout{>>>doublePage: end with left side of the object \hv@floatObject}%
- \end{\hv@floatType}%
+ \end{\hv@floatType*}%
}
\def\do@hvFloat@doublePageCaptionRightObjectRight#1{% right part of the object
@@ -1633,579 +1657,12 @@
%
\newsavebox\hv@boxLeftPage
\newsavebox\hv@boxRightPage
-%
-%% ||1in+evenside --- |1in+oddside ---||
-%
-\def\do@hvFloat@doublePAGE#1{% image on left and right page with caption on the right ----------------------------------
- % #1-> 0/1 caption under/right
-% \global\setlength\hv@tempWidthA{\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection}%
-% \global\setlength\hv@leftPageObjectWidth{\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection}%
- \expandafter\global\expandafter\savebox\expandafter\hvObjectBox\expandafter{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \expandafter\global\expandafter\savebox\expandafter\hv@boxLeftPage\expandafter{\clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}}%
- \expandafter\global\expandafter\savebox\expandafter\hv@boxRightPage\expandafter{\clipbox*{\hv@leftPageObjectWidth{} -\depth{} \width{} \height}{\usebox\hvObjectBox}}%
- \checkoddpage
- \ifoddpage
- \hvfloat@typeout{do@hvFloat@doublePAGE: oddpage}%
- \if@twocolumn
- \if@firstcolumn
- \hvfloat@typeout{do@hvFloat@doublePAGE: ifoddpage->twocolumn->firstcolumn}%
- \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}%
- \else
- \hvfloat@typeout{do@hvFloat@doublePAGE: ifoddpage->twocolumn->secondcolumn}%
- \do@hvFloat@doublePAGECaptionRight{#1}%
- \fi
- \else
- \do@hvFloat@doublePAGECaptionRight{#1}%
- \fi
- \else
- \hvfloat@typeout{do@hvFloat@doublePAGE: evenpage}%
- \if@twocolumn
- \if@firstcolumn
- \afterpage{\afterpage{\afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}}}%
- \else
- \afterpage{\afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}}%
- \fi
- \else
- \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}% onecolumn/left page
- \fi
- \fi
- \endgroup% startet at main macro
-}
-%
-\def\do@hvFloat@doublePAGECaptionRight#1{% image on left and right page with caption on the right ----------------------------------
- % #1-> 0/1 caption under/right
- \hvfloat@typeout{do@hvFloat@doublePAGECaptionRight->start}%
- \afterpage{%
- \hfuzz=\maxdimen
- \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
- \ifx\hv@caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
- \ifx\hv@subcaption@format\@empty\else
- \expandafter
- \captionsetup\expandafter[\expandafter s\expandafter u\expandafter b\expandafter]\expandafter
- {\hv@subcaption@format}%
- \fi
- \ifhv@useOBox
- \global\let\hvObjectBox\hvOBox
- \else
- \global\savebox\hvObjectBox{\hv@floatObject}%
- \fi
- \noindent
- \global\hv@tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection%
- \global\hv@leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection%
- \clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
- \ifx\hv@label\@empty\else\label{\hv@label}\fi
- \null\newpage\if@twocolumn\null\newpage\fi
- \expandafter\global\expandafter\savebox\expandafter\hvObjectBox\expandafter{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \noindent
- \hspace*{\dimexpr-\hv@tempWidthA}%
- \clipbox*{\the\hv@leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}%
- \ifx\hv@label\@empty\else\label{\hv@label-2}\fi
- \begingroup
- \ifnum#1>0
- \medskip
- \ifdim\dp\hvObjectBox > \z@
- \rotatebox[origin=c]{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{%
- \ifx\relax\hv@shortCap\relax
- \captionof{\hv@floatType}{\hv@longCap}%
- \else
- \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
- \fi
- \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
- }}%
- \else
- \rotatebox{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{%
- \ifx\relax\hv@shortCap\relax
- \captionof{\hv@floatType}{\hv@longCap}%
- \else
- \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
- \fi
- \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
- }}%
- \fi
- \else% caption not rotated
- \par\noindent
- \parbox{\textwidth}{%
- \expandafter\hvFloatSet\expandafter{\hv@save@setting,capFormat={font={tiny},labelsep=newline}}%
- \ifx\relax\hv@shortCap\relax
- \captionof{\hv@floatType}{\hv@longCap}%
- \else
- \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
- \fi
- \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
- }%
- \fi
- \endgroup
- \newpage\if@twocolumn\null\newpage\fi
- }%
-}
-%
-%% ||1in+evenside --- |1in+oddside ---||
-%
-\def\do@hvFloat@doubleFULLPAGE#1{% image on left and right page with caption before/below/right/after
- % #1-> 0/1 caption under/right
- \hvfloat@typeout{>>> do@hvFloat@doubleFULLPAGE: #1}%
- \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
- \ifx\hv@caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
- \ifx\hv@subcaption@format\@empty\else
- \expandafter
- \captionsetup\expandafter[\expandafter s\expandafter u\expandafter b\expandafter]\expandafter
- {\hv@subcaption@format}%
- \fi
- \ifx\hvSet@capPos\hv@After \global\hv@@capPos=1
- \else
- \ifx\hvSet@capPos\hv@Before \global\hv@@capPos=0
- \else
- \global\hv@@capPos=2 % other caption type
- \fi\fi
- \checkoddpage
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \global\hv@tempWidthA=\dimexpr-\oddsidemargin-1in-\parindent+\hvSet@bindCorrection% the width of the right side offset
- \global\hv@tempWidthB=\dimexpr\ht\hvCaptionBox+\wd\hvObjectBox+2\hvSet@bindCorrection%
- \global\hv@leftPageObjectWidth=\dimexpr\paperwidth-\hvSet@bindCorrection%
-% \savebox\hv@leftBox{\clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}}%
-% \savebox\hv@rightBox{\clipbox*{\the\hv@leftPageObjectWidth{} \depth{} \width{} \height}{\usebox\hvObjectBox}}%
-% \expandafter\captionsetup\expandafter{\hv@caption@format}%
- \ifoddpage
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage}%
- \ifcase\hv@@capPos % =0 Caption before
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before (0)}%
- \if@twocolumn
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn}%
- \if@firstcolumn
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn/firstcolumn}%
- \ifhv@twoColumnCaption
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption before/twocolumn/firstcolumn/twoColumnCaption}%
- \set@Normal@Bottom@Caption*
- \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionBefore}%
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption before/twocolumn/firstcolumn/oneColCaption}%
- \afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore}%
- \fi
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn/secondcolumn}%
- \set@Normal@Bottom@Caption
- \do@hvFloat@doubleFULLPAGE@CaptionBefore
- \fi
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/onecolumn}%
- \set@Normal@Bottom@Caption
- \do@hvFloat@doubleFULLPAGE@CaptionBefore
- \fi
- \or % =1 Caption after
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after (1)}%
- \ifhv@twoColumnCaption
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption (1)}%
- \if@firstcolumn
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/firstcolumn (1)}%
- \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol}%
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/secondcolumn (1)}%
- \do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol
- \fi
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/oneColCaption (1)}%
- \if@twocolumn
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/twocolumn (1)}%
- \if@firstcolumn
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption after/twoColCaption/twocolumn/firstcolumn (1)}%
- \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter}%
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/twocolumn/secondcolumn (1)}%
- \do@hvFloat@doubleFULLPAGE@CaptionAfter
- \fi
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/onecolumn (1)}%
- \do@hvFloat@doubleFULLPAGE@CaptionAfter
- \fi
- \fi
- \else% \ifcase >1 all other Captions
- \if@twocolumn
- \if@firstcolumn
- \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}%
- \else
- \do@hvFloat@doubleFULLPAGE@CaptionOther{#1}%
- \fi
- \else % \if@twocolumn
- \do@hvFloat@doubleFULLPAGE@CaptionOther{#1}%
- \fi
- \fi% \ifcase
- \else% we have an even page
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage (1 -- \thepage)}%
- \ifcase\hv@@capPos% Before
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before (0 -- \thepage)}%
- \if@twocolumn
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before/twocolumn (0 -- \thepage)}%
- \if@firstcolumn
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before/twocolumn/firstcolumn (0 -- \thepage)}%
- \ifhv@twoColumnCaption
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2->evenpage/caption before/twocolumn/firstcolumn/twocolCap (0 -- \thepage)}%
- \afterpage{\afterpage\set@Normal@Bottom@Caption*\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}%
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2 -> evenpage/caption before/twocolumn/firstcolumn/oneColCap (0 -- \thepage)}%
- \afterpage{\afterpage{\afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}}%
- \fi
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2->evenpage/caption before/twocolumn/secondcolumn (0 -- \thepage)}%
- \afterpage{\afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}%
- \fi
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption before/onecolumn (0 -- \thepage)}%
- \afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore}%
- \fi
- \or % capPos after
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after (1 -- \thepage)}%
- \if@twocolumn
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn (1 -- \thepage)}%
- \if@firstcolumn
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn/firstcolumn (1 -- \thepage)}%
- \ifhv@twoColumnCaption
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/twocolumn/firstcolumn/twoColCaption (1 -- \thepage)}%
- \afterpage{\afterpage\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{#1}}}%
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/twocolumn/firstcolumn/oneColCaption (1 -- \thepage)}%
- \afterpage{\afterpage\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter{#1}}}%
- \fi
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn/secondcolumn (1 -- \thepage)}%
- \ifhv@twoColumnCaption
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage1 2 -> evenpage/caption after/twocolumn/secondcolumn/twoColCaption (1 -- \thepage)}%
- \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{#1}}}%
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage1 2 -> evenpage/caption after/twocolumn/secondcolumn/oneColCaption (1 -- \thepage)}%
- \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter{#1}}}%
- \fi
- \fi
- \else
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/onecolumn (1 -- \thepage)}%
- \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter}%
- \fi
- \else % \ifcase Any other caption
- \if@twocolumn
- \if@firstcolumn
- \afterpage{\afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}}}%
- \else
- \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}}%
- \fi
- \else
- \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}%
- \fi
- \fi% \ifcase
- \fi% main ifoddpage
- \endgroup% started at main macro \hvFloat
-}
+\input{hvfloat-2.inc}
-\def\set@Normal@Bottom@Caption{\@ifnextchar*\set@Normal@Bottom@CaptionStar\set@Normal@Bottom@Caption@}
-\def\set@Normal@Bottom@Caption@{%
- \begin{\hv@floatType}[!b]
- \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
- \ifhv@separatorLine\drawSepLine\fi
-% \expandafter\captionsetup\expandafter{\hv@caption@format}%
- \ifhv@onlyText
- \hv@longCap
- \else
- \ifx\hv@shortCap\@empty
- \captionof{\hv@floatType}{\hv@longCap}%
- \else
- \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
- \fi
- \fi
- \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
- \end{\hv@floatType}%
-}
-\def\set@Normal@Bottom@CaptionStar*{%
- \begin{\hv@floatType*}[!b]
- \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
- \ifhv@separatorLine\drawSepLine\fi
-% \expandafter\captionsetup\expandafter{\hv@caption@format}%
- \ifhv@onlyText
- \hv@longCap
- \else
- \ifx\hv@shortCap\@empty
- \captionof{\hv@floatType}{\hv@longCap}%
- \else
- \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
- \fi
- \fi
- \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
- \end{\hv@floatType*}%
-}
+\input{hvfloat-1.inc}
-\def\do@hvFloat@doubleFULLPAGE@CaptionBefore{%
- \afterpage{%
- \hfuzz=\maxdimen
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip
- \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
- \thispagestyle{empty}%
- \ifx\hv@floatType\hv@figure
- \global\refstepcounter{hv@tempCNTfigB}%
- \else
- \global\refstepcounter{hv@tempCNTtabB}% before caption
- \fi
- \expandafter\label\expandafter{\hv@label}%
- \clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
- \afterpage{%
- \if@twocolumn\newpage\null\newpage\fi
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \thispagestyle{empty}%
- \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox
- \hspace*{\hv@tempWidthA}%
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}%
- \ifx\hv@floatType\hv@figure
- \global\refstepcounter{hv@tempCNTfigA}%
- \else
- \global\refstepcounter{hv@tempCNTtabA}% before caption
- \fi
- \expandafter\label\expandafter{\hv@label-2}%
- \newpage\if@twocolumn\null\newpage\fi
- }}%
-}
-
-\newif\ifhv@temp
-
-\def\do@hvFloat@doubleFULLPAGE@CaptionAfter{%
- \afterpage{%
- \hfuzz=\maxdimen
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip
- \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
- \thispagestyle{empty}%
- \clipbox*{0 \the\dp\hvObjectBox{} \the\hv@leftPageObjectWidth{} \the\ht\hvObjectBox}{\usebox\hvObjectBox}%
- \ifx\hv@floatType\hv@figure
- \refstepcounter{hv@tempCNTfigA}%
- \else
- \refstepcounter{hv@tempCNTtabA}% before caption
- \fi
- \ifx\hv@label\@empty\else\label{\hv@label}\fi
- \newpage\if@twocolumn\null\newpage\fi
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \thispagestyle{empty}%
- \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox
- \hspace*{\hv@tempWidthA}%
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}%
- \ifx\hv@floatType\hv@figure
- \refstepcounter{hv@tempCNTfigB}%
- \else
- \refstepcounter{hv@tempCNTtabB}% before caption
- \fi
- \expandafter\label\expandafter{\hv@label-2}%
- \newpage\if@twocolumn\null\newpage\fi
- \begin{\hv@floatType}[!b]
- \ifhv@separatorLine\drawSepLine\fi
-% \expandafter\captionsetup\expandafter{\hv@caption@format}%
- \ifhv@onlyText
- \hv@longCap
- \else
- \ifx\hv@shortCap\@empty
- \captionof{\hv@floatType}{\hv@longCap}%
- \else
- \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
- \fi
- \fi
- \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
- \end{\hv@floatType}%
- }%
-}
-
-\def\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{%
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: start} %
- \afterpage{%
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: afterpage start} %
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip
- \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
- \thispagestyle{empty}%
- \ifx\hv@floatType\hv@figure
- \refstepcounter{hv@tempCNTfigA}%
- \else
- \refstepcounter{hv@tempCNTtabA}% before caption
- \fi
- \ifx\hv@label\@empty\else\label{\hv@label}\fi
- \clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
- \newpage\if@twocolumn\null\newpage\fi
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: insert newpage} %
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \thispagestyle{empty}%
- \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox
- \hspace*{\hv@tempWidthA}%
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}%
- \ifx\hv@floatType\hv@figure
- \refstepcounter{hv@tempCNTfigB}%
- \else
- \refstepcounter{hv@tempCNTtabB}% before caption
- \fi
- \ifx\hv@label\@empty\else\label{\hv@label-2}\fi
- \newpage\if@twocolumn\null\newpage\fi
- \begin{\hv@floatType*}[!b]
- \hv@twoColumnCaptiontrue
- \ifhv@separatorLine\drawSepLine\fi
-% \expandafter\captionsetup\expandafter{\hv@caption@format}%
- \ifhv@onlyText
- \hv@longCap
- \else
- \ifx\hv@shortCap\@empty
- \captionof{\hv@floatType}{\hv@longCap}%
- \else
- \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
- \fi
- \fi
- \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
- \end{\hv@floatType*}%
- }%
- \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: afterpage done} %
-}
-
-\def\do@hvFloat@doubleFULLPAGE@CaptionOther#1{%
- \afterpage{%
- \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox
- \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \thispagestyle{empty}%
- \hfuzz=\maxdimen
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \clipbox*{0 \depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
- \ifx\hv@floatType\hv@figure
- \refstepcounter{hv@tempCNTfigA}%
- \else
- \refstepcounter{hv@tempCNTtabA}% before caption
- \fi
- \label{\hv@label}%
- \afterpage{%
- \if@twocolumn\newpage\if@firstcolumn\else\null\newpage\fi\fi
- \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
- \thispagestyle{empty}%
- \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox
- \hspace*{\hv@tempWidthA}%
- \clipbox*{\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}%
- \ifx\hv@floatType\hv@figure
- \refstepcounter{hv@tempCNTfigB}%
- \else
- \refstepcounter{hv@tempCNTtabB}% before caption
- \fi
- \expandafter\label\expandafter{\hv@label-2}%
- \savebox\hvCaptionBox{\parbox{0.9\ht\hvObjectBox}{\captionof*{\hv@floatType}{\hv@longCap}}}%
- \ifnum#1 > 0\relax % rotation with 90°
-% \setlength\hv@tempWidthB{\dimexpr\ht\hvCaptionBox+\wd\hvObjectBox+2\hvSet@bindCorrection}%
- \ifdim\hv@tempWidthB < 2\paperwidth
- \rotatebox[origin=lb]{90}{\makebox[\paperheight][c]{\parbox{0.8\ht\hvObjectBox}{%
-% \expandafter\captionsetup\expandafter{\hv@caption@format}%
- \ifhv@onlyText
- \hv@longCap
- \else
- \ifx\hv@shortCap\@empty
- \captionof{\hv@floatType}{\hv@longCap}%
- \else
- \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
- \fi
- \fi
- }}}% rotatebox
- \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
- \else% ifdim: no space left on page
- \put(-2\ht\hvCaptionBox,0.5\ht\hvObjectBox){\makebox(0,0){\rotatebox{90}{\minipage{\textwidth}\centering
- \parbox{0.8\textwidth}{%
- \ifhv@onlyText
- \hv@longCap
- \else
- \ifx\hv@shortCap\@empty
- \captionof{\hv@floatType}{\hv@longCap}%
- \else
- \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
- \fi
- \fi
- }%
- \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
- \endminipage}}}%
- \fi
- \else% ifnum, caption not rotated, under or over the right page
- \hv@tempWidthA=\the\dimexpr\paperheight-\ht\hvObjectBox\relax
- \ifdim\hv@tempWidthA > \ht\hvCaptionBox
- \else
- \put(\the\dimexpr1.5\paperwidth-\wd\hvObjectBox-\hvSet@bindCorrection,\the\dimexpr\ht\hvCaptionBox+\abovecaptionskip+\belowcaptionskip){\makebox[0pt][c]{\parbox{\textwidth}{%%
-% \expandafter\captionsetup\expandafter{\hv@caption@format}%
- \ifhv@onlyText
- \hv@longCap
- \else
- \ifx\hv@shortCap\@empty
- \captionof{\hv@floatType}{\hv@longCap}%
- \else
- \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}%
- \fi
- \fi
- }}}%
- \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi
- \fi
- \fi% end \ifnum#1>0
- \newpage\if@twocolumn\null\newpage\fi
- }%
- }%
-}
-
-
-\def\setBottomCaption{%
- \ifhv@twoColumnCaption
- \begin{\hv@floatType*}[!b]%
- \else
- \begin{\hv@floatType}[!b]%
- \fi
- \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
- \ifhv@separatorLine\drawSepLine\fi
- \par
- \usebox\hvCaptionBox
- \ifhv@twoColumnCaption
- \end{\hv@floatType*}%
- \else
- \end{\hv@floatType}%
- \fi
-}
-
-\def\setPageObject{%
- \hvfloat@typeout{>>>> setPageObject/start environment ...}%
- \afterpage{\checkoddpage}%
- \ifhv@star
- \begin{\hv@floatType*}[p]%
- \else
- \begin{\hv@floatType}[p]%
- \fi
- \hv@tempcnt=\@floatpenalty% suppress "float too big" message
- \hfuzz=\maxdimen
- \expandafter\hvFloatSet\expandafter{\hv@save@setting}%
- \ifhv@FULLPAGE
- \hvfloat@typeout{>>>> setPageObject/FULLPAGE}%
- \@floatpenalty=\z@% no message that float too large
- \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep}%-0.5\baselineskip%
- \if@twoside
- \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside}%
- \ifoddpage
- \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside/oddpage (\thepage)}%
- \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}%
- \else
- \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside/evenpage (\thepage)}%
- \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
- \fi
- \else
- \hvfloat@typeout{>>>> setPageObject/FULLPAGE/oneside}%
- \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}%
- \fi
- \hvfloat@typeout{>>>> setPageObject/FULLPAGE/set pagestyle empty}%
- \AtBeginShipoutNext{\thispagestyle{empty}}% to prevent heading/footer
-% \afterpage{\AddToHookNext{shipout/after}{\thispagestyle{empty}}}%
- \usebox\hvObjectBox
- \else
- \hvfloat@typeout{>>>> setPageObject/NO FULLPAGE}%
- \usebox\hvObjectBox
- \fi
- \hvfloat@typeout{>>>> setPageObject/stop environment}%
- \ifhv@star
- \end{\hv@floatType*}%
- \else
- \end{\hv@floatType}%
- \fi
- \@floatpenalty=\hv@tempcnt% restore
-}
+\input{hvfloat-0.inc}
\ExplSyntaxOn