diff options
Diffstat (limited to 'macros/latex/contrib/hvfloat/latex')
-rw-r--r-- | macros/latex/contrib/hvfloat/latex/hvfloat-0.inc | 130 | ||||
-rw-r--r-- | macros/latex/contrib/hvfloat/latex/hvfloat-1.inc | 474 | ||||
-rw-r--r-- | macros/latex/contrib/hvfloat/latex/hvfloat-2.inc | 114 | ||||
-rw-r--r-- | macros/latex/contrib/hvfloat/latex/hvfloat.sty | 665 |
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 |