texlive[70394] Master/texmf-dist: hvfloat (4mar24)

commits+karl at tug.org commits+karl at tug.org
Mon Mar 4 22:10:46 CET 2024


Revision: 70394
          https://tug.org/svn/texlive?view=revision&revision=70394
Author:   karl
Date:     2024-03-04 22:10:46 +0100 (Mon, 04 Mar 2024)
Log Message:
-----------
hvfloat (4mar24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/hvfloat/Changes
    trunk/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf
    trunk/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex
    trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-0.inc
    trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-1.inc
    trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-2.inc
    trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-3.inc

Modified: trunk/Master/texmf-dist/doc/latex/hvfloat/Changes
===================================================================
--- trunk/Master/texmf-dist/doc/latex/hvfloat/Changes	2024-03-04 21:10:29 UTC (rev 70393)
+++ trunk/Master/texmf-dist/doc/latex/hvfloat/Changes	2024-03-04 21:10:46 UTC (rev 70394)
@@ -1,4 +1,6 @@
 hvfloat.sty:    
+2.48  2024-03-03  - added option fboxLines to get patial lines of \fbox
+                    (package fbox)
 2.47  2023-10-16  - added type doubleFullPage for images with a width
                     of 2\paperwidth, but variable height and possible 
                     text on both pages.

Modified: trunk/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex	2024-03-04 21:10:29 UTC (rev 70393)
+++ trunk/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex	2024-03-04 21:10:46 UTC (rev 70394)
@@ -1,7 +1,7 @@
-%% $Id: hvfloat.tex 774 2023-10-16 13:44:29Z herbert $
-\listfiles
+%% $Id: hvfloat.tex 876 2024-03-03 14:04:56Z herbert $
+%\listfiles
 \errorcontextlines=100
-\documentclass[twoside,paper=a4,usegeometry]{scrartcl}
+\documentclass[twoside,paper=a4,usegeometry,index=totoc]{scrartcl}
 \usepackage{fontspec}
 \usepackage[silent]{libertinus-otf}
 %\usepackage[scaled=0.85]{beramono}
@@ -251,6 +251,7 @@
 The following packages are loaded by \Lpack{hvfloat} and the optional argument
 \Loption{hypcap} is passed to the packages \Lpack{caption} and \Lpack{subcaption}:
 
+\Lpack{fbox}, 
 \Lpack{caption}, 
 \Lpack{subcaption},
 \Lpack{atbegshi},
@@ -400,6 +401,8 @@
 \Lkeyword{inMargin} & false  & \rowvsp Put object and frame into the margin.\\
 \Lkeyword{objectFrame} & false  & \rowvsp Put a frame with no separation
     around the float object.\\
+\Lkeyword{fboxLines} & ltrb & \rowvsp Lines around the box l)eft, t)op, r)ight, b)ottom\\
+\Lkeyword{fboxSep} & 0pt & \rowvsp Additional box separation (like \Ldim{fboxsep})\\
 \Lkeyword{style} & \none        & \rowvsp Use a defined style.\\
 \Lkeyword{capFormat} & \none    & \rowvsp Define formatting options for
    \Lcs{caption}; see documentation of package \Lpack{caption}.\\
@@ -537,6 +540,23 @@
   the separation between object and caption, and the current linewidth.}{fig:width1}
 
 
+The same with box lines only on the left and right:
+
+\begin{lstlisting}
+\hvFloat[floatPos=!htb,capPos=after,objectFrame,
+  fboxLines=lr,fboxSep=0pt]{figure}{\includegraphics[scale=1.5]{images/rose}}%
+  {Caption right beside with a \emph{natural} width, which is given by the width of the object,
+  the separation between object and caption, and the current linewidth.}{fig:width1A}
+\end{lstlisting}
+
+\MarginNote{Fig.~\ref{fig:width1A}}
+\hvFloat[floatPos=!htb,capPos=after,objectFrame,
+  fboxLines=lr,fboxSep=0pt]{figure}{\includegraphics[scale=1.5]{images/rose}}%
+  {Caption right beside with a \emph{natural} width, which is given by the width of the object,
+  the separation between object and caption, and the current linewidth.}{fig:width1A}
+
+
+
 \subsection{Relative linewidth}
 
 With \Lkeyword{capWidth}\texttt{=<number>} the caption width is set to \texttt{<number>}\Ldim{columnwidth}.
@@ -2742,9 +2762,9 @@
 and the right part on page~\pageref{foo-2}. In the follwoing example~\ref{bar} the caption is on page~\pageref{bar-cap}, the left image part on page~\pageref{bar}
 and the right part on page~\pageref{bar-2}. All three labels points to the same figure or table number:
 
-\verb/\ref{foo} | \ref{foo-cap} | \ref{foo-2}/ $\rightarrow$ \ref{foo} | \ref{foo-cap} | \ref{foo-2}
+\verb/\ref{foo} | \ref{foo-cap} | \ref{foo-2}/ $\rightarrow$ Figure~\ref{foo} | Figure~\ref{foo-cap} | Figure~\ref{foo-2}
 
-\verb/\pageref{foo} | \pageref{foo-cap} | \pageref{foo-2}/ $\rightarrow$ \pageref{foo} | \pageref{foo-cap} | \pageref{foo-2}
+\verb/\pageref{foo} | \pageref{foo-cap} | \pageref{foo-2}/ $\rightarrow$ Page~\pageref{foo} | Page~\pageref{foo-cap} | Page~\pageref{foo-2}
 
 \begin{lstlisting}
  \hvFloat[doubleFULLPAGE,capPos=after]%
@@ -2806,10 +2826,10 @@
 
 \hvBlindtext
 
+\hvBlindtext
+
 \hvblindtext
 
-%\hvblindtext
-
 \subsection{\Lkeyword{doublePAGE}}
 With this option the object also starts at the left paper margin but on the top of the text area.
 There will be pagenumbers and a caption can be rotated on the right of the object or under it.
@@ -3001,9 +3021,11 @@
 
 \hvBlindtext
 
+%\hvBlindtext
+
 \hvBlindtext
 
-\hvBlindtext
+\vfill
 \begin{lstlisting}
 \hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]%
   {figure}%
@@ -3016,9 +3038,13 @@
   {fig:doublePage001}
 \end{lstlisting}
 
+Now a pagebreak follows so that the following doublepage object should
+immediately placed on the next page. 
+\newpage
 
+
 \MarginNote{Fig. \ref{fig:doublePage001}}
-\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]%
+\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=left]%
   {figure}%
   {\includegraphics[doubleFullPage]{images/sonne-meer}}%
   [A doublepage image with a caption on the right side of the right part.]%
@@ -3035,11 +3061,22 @@
 \hvBlindtext
 
 \hvBlindtext
+\hvblindtext
+\hvblindtext
 
+\hvblindtext
+\hvblindtext
 
+%\hvBlindtext
+%\hvBlindtext
+\hvBlindtext
 
+\hvBlindtext
 
 
+
+
+
 \subsection{Tabulars}
 
 In General there is no difference in an imgage or tabular or simple text. The object will be saved in a box and
@@ -3086,13 +3123,11 @@
   [A doublepage tabular with a caption on the right side of the right part.]%
   {A caption for a double-sided tabular that will be placed on the right side of the
    right-hand part of the illustration. The illustration begins on the left edge of 
-   the paper. A short form is used for the LOF. 
-   The parameter is \texttt{doublePage}}%
+   the paper. A short form is used for the LOF. The parameter is \texttt{doublePage}}%
   {tab:doublePage3}
 \end{lstlisting}
 
 
-\marginpar{Tab.~\ref{tab:doublePage3}}
 \global\savebox\hvOBox{%
 \begin{tabular}{l*{18}r} \toprule
  & \textbf{1972} & \textbf{1973} & \textbf{1974} & \textbf{1975} & \textbf{1976} 
@@ -3121,6 +3156,7 @@
 \end{tabular}}
 
 
+\marginpar{Tab.~\ref{tab:doublePage3}}%
 \hvFloat[doublePage,capPos=right,capVPos=top,floatCapSep=12pt]%
   {table}%
   {\usebox\hvOBox}%%%%%%%%%%%%%%
@@ -3131,11 +3167,19 @@
    The parameter is \texttt{doublePage}}%
   {tab:doublePage3}
 
+
+Here comes some snonsense Text to show the output for a \Lcs{hvFloat} which appears
+exactly on top of a new even page. This should be detectted by the command so that the
+tabular is placed directly on the following double page, starting with the even pagenumber.
+
+
 \hvBlindtext
 
 \hvBlindtext
 
+\hvBlindtext
 
+
 \section{References to the page}\label{varioref}
 %Whith loading package \texttt{hyperref} references to floating objects with a caption left or right of the object
 %are no problem in difference to captions below othe object or on another page (using \texttt{fullpage} option).

Modified: trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-0.inc
===================================================================
--- trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-0.inc	2024-03-04 21:10:29 UTC (rev 70393)
+++ trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-0.inc	2024-03-04 21:10:46 UTC (rev 70394)
@@ -36,15 +36,38 @@
       \afterpage{\do at hvFloat@doubleFullPage at ObjectAndCaption}% oddpage->newpage
     \fi % end \if at twocolumn
   \else% evenpage 
-    \if at twocolumn
-      \if at firstcolumn
-        \afterpage{\afterpage{\afterpage{\do at hvFloat@doubleFullPage at ObjectAndCaption}}}%  ->2nd Col left page and newpage
+    %---------
+    %\typeout{>>>>Setze hv at atPageBeginfalse}%
+    \global\hv at atPageBeginfalse
+    \stepcounter{hvfloat at ref}%
+    \zsavepos{\thehvfloat at ref}%
+    \@tempy=\dimexpr-\zposy{\thehvfloat at ref} sp+\paperheight-1in-\topmargin-\headheight-\headsep\relax
+    \@tempx=\dimexpr-\zposx{\thehvfloat at ref} sp+\evensidemargin+1in\relax
+    %\typeout{>>>>\the\@tempx >>>>>\the\@tempy >>>>\f at size}%
+    \ifdim\@tempy > \dimexpr\f at size pt + 2pt 
+      %\typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat at ref}%
+    \else
+      \ifdim\@tempx = \z@ 
+        %\typeout{>>>>Case 2,  Absolut oben links auf der Seite  \thehvfloat at ref }%
+        \global\hv at atPageBegintrue
       \else
-        \afterpage{\afterpage{\do at hvFloat@doubleFullPage at ObjectAndCaption}}% ->newpage ( 2columns)
+        %\typeout{>>>>Case 1,  Oben auf der Seite  \thehvfloat at ref, aber nicht am Anfang der Zeile}%
       \fi
-    \else % onecol
-      \afterpage{\afterpage{\do at hvFloat@doubleFullPage at ObjectAndCaption}}% evenpage->newpage->newpage
-    \fi % end \if at twocolumn
+    \fi
+  %---------
+    \ifhv at atPageBegin% At the top left of the even page -> output image
+       \do at hvFloat@doubleFullPage at ObjectAndCaption
+    \else
+      \if at twocolumn
+        \if at firstcolumn
+          \afterpage{\afterpage{\afterpage{\do at hvFloat@doubleFullPage at ObjectAndCaption}}}%  ->2nd Col left page and newpage
+        \else
+          \afterpage{\afterpage{\do at hvFloat@doubleFullPage at ObjectAndCaption}}% ->newpage ( 2columns)
+        \fi
+      \else % onecol
+        \afterpage{\afterpage{\do at hvFloat@doubleFullPage at ObjectAndCaption}}% evenpage->newpage->newpage
+      \fi % end \if at twocolumn
+    \fi % end of \ifhv at atPageBegin
   \fi% main ifoddpage
   \endgroup% started at main macro \hvFloat
 }
@@ -53,9 +76,11 @@
   \begin{\hv at floatType*}[t]
     \hv at set@noverticalSpace
     \hfuzz=\maxdimen
+    \let\c at hv@tempCNTfigA\c at figure
+    \let\c at hv@tempCNTtabA\c at table
     \expandafter\hvFloatSet\expandafter{\hv at save@setting}% 
     \hv at leftPageObjectWidth=\dimexpr\paperwidth-\hvSet at bindCorrection%
-    \savebox{\hvObjectBox}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
+    \global\savebox{\hvObjectBox}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at 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 at leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
@@ -91,11 +116,11 @@
   \begin{\hv at floatType*}[t]
     \hv at set@noverticalSpace
     \hfuzz=\maxdimen
-%    \let\c at hv@tempCNTfigA\c at figure
-%    \let\c at hv@tempCNTtabA\c at table
+    \let\c at hv@tempCNTfigA\c at figure
+    \let\c at hv@tempCNTtabA\c at table
     \expandafter\hvFloatSet\expandafter{\hv at save@setting}% 
     \hv at leftPageObjectWidth=\dimexpr\paperwidth-\hvSet at bindCorrection
-    \savebox{\hvObjectBox}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
+    \global\savebox{\hvObjectBox}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
     \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep}%-\baselineskip-\parskip+1.5\lineskip}%  no interlineskip
     \hspace*{\the\dimexpr-1in-\oddsidemargin+\hvSet at bindCorrection}%
     \clipbox*{\the\hv at leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}%

Modified: trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-1.inc
===================================================================
--- trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-1.inc	2024-03-04 21:10:29 UTC (rev 70393)
+++ trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-1.inc	2024-03-04 21:10:46 UTC (rev 70394)
@@ -199,6 +199,8 @@
 
 \def\do at hvFloat@doubleFULLPAGE at CaptionBefore{%
   \afterpage{%
+    \let\c at hv@tempCNTfigA\c at figure
+    \let\c at hv@tempCNTtabA\c at table
     \hfuzz=\maxdimen
     \global\savebox{\hvObjectBox}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
     \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}%  no interlineskip
@@ -229,11 +231,11 @@
   }}%
 }
 
-\newif\ifhv at temp
-
 \def\do at hvFloat@doubleFULLPAGE at CaptionAfter{%
   \afterpage{%
     \hfuzz=\maxdimen
+    \let\c at hv@tempCNTfigA\c at figure
+    \let\c at hv@tempCNTtabA\c at table
     \global\savebox{\hvObjectBox}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
     \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}%  no interlineskip
     \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}%
@@ -279,6 +281,8 @@
 \def\do at hvFloat@doubleFULLPAGE at CaptionAfterTwoCol{%
   \hvfloat at typeout{do at hvFloat@doubleFULLPAGE at CaptionAfterTwoCol: start}  %
   \afterpage{%
+    \let\c at hv@tempCNTfigA\c at figure
+    \let\c at hv@tempCNTtabA\c at table
     \hvfloat at typeout{do at hvFloat@doubleFULLPAGE at CaptionAfterTwoCol: afterpage start}  %
     \global\savebox{\hvObjectBox}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
     \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}%  no interlineskip
@@ -327,6 +331,8 @@
 
 \def\do at hvFloat@doubleFULLPAGE at CaptionOther#1{%
   \afterpage{%
+    \let\c at hv@tempCNTfigA\c at figure
+    \let\c at hv@tempCNTtabA\c at table
     \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 at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%

Modified: trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-2.inc
===================================================================
--- trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-2.inc	2024-03-04 21:10:29 UTC (rev 70393)
+++ trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-2.inc	2024-03-04 21:10:46 UTC (rev 70394)
@@ -28,19 +28,47 @@
         \do at hvFloat@doublePAGECaptionRight{#1}%
       \fi
     \else
-      \do at hvFloat@doublePAGECaptionRight{#1}%
+      \afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}%
     \fi  
   \else
     \hvfloat at typeout{do at hvFloat@doublePAGE: evenpage}%
-    \if at twocolumn
-      \if at firstcolumn
-        \afterpage{\afterpage{\afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}}}%
+    %---------
+    \hv at atPageBeginfalse
+    \stepcounter{hvfloat at ref}%
+    \zsavepos{\thehvfloat at ref}%
+    \@tempy=\dimexpr-\zposy{\thehvfloat at ref} sp+\paperheight-1in-\topmargin-\headheight-\headsep\relax
+    \@tempx=\dimexpr-\zposx{\thehvfloat at ref} sp+\evensidemargin+1in\relax
+    %\typeout{>>>>\the\@tempx >>>>>\the\@tempy >>>>\f at size}%
+    \ifdim\@tempy > \z@ 
+      %\typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat at ref}%
+      \ifdim\@tempx < \z@ 
+         %\typeout{>>>>Case 0-1, Text oben auf der Seite  \thehvfloat at ref}%
       \else
-        \afterpage{\afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}}%
+        %\typeout{>>>>Case 0-2, Absolut oben links auf der Seite  \thehvfloat at ref}%
+        \hv at atPageBegintrue
       \fi
     \else
-      \afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}%   onecolumn/left page
+      \ifdim\@tempx > \z@ 
+        %\typeout{>>>>Case 1,  Oben auf der Seite  \thehvfloat at ref, aber nicht am Anfang der Zeile}%
+      \else
+        %\typeout{>>>>Case 2,  Absolut oben links auf der Seite  \thehvfloat at ref }%
+        \hv at atPageBegintrue
+      \fi
     \fi
+  %---------
+    \ifhv at atPageBegin
+      \do at hvFloat@doublePAGECaptionRight{#1}%
+    \else
+      \if at twocolumn
+        \if at firstcolumn
+          \afterpage{\afterpage{\afterpage{afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}}}}%
+        \else
+          \afterpage{\afterpage{\afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}}}%
+        \fi
+      \else
+        \afterpage{\afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}}%   onecolumn/left page
+      \fi
+    \fi %end \hv at atPageBegintrue
   \fi
   \endgroup% startet at main macro
 }
@@ -48,7 +76,6 @@
 \def\do at hvFloat@doublePAGECaptionRight#1{%  image on left and right page with caption on the right ----------------------------------
   % #1-> 0/1 caption under/right
     \hvfloat at typeout{do at hvFloat@doublePAGECaptionRight->start}%
-    \afterpage{%
       \hfuzz=\maxdimen
       \expandafter\hvFloatSet\expandafter{\hv at save@setting}%
       \ifx\hv at caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv at caption@format}\fi
@@ -109,6 +136,5 @@
         \fi
         \endgroup
         \newpage\if at twocolumn\null\newpage\fi
-  }%
 }
 %

Added: trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-3.inc
===================================================================
--- trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-3.inc	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-3.inc	2024-03-04 21:10:46 UTC (rev 70394)
@@ -0,0 +1,264 @@
+%% Herbert Voss <hvoss at 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.
+%%
+%%
+%% ------------------------------------- the doublepage obejcts ---------------------------
+%% ||1in+evenside --- |1in+oddside ---||
+%
+\def\do at hvFloat@doublePage#1{%  image on left and right page with caption on the right page 
+  % #1-> 0/1 caption under/right
+  \setcounter{topnumber}{1}%
+  \setcounter{dbltopnumber}{1}%
+  \hvfloat at typeout{----------------------------- do at hvFloat@doublePage#1 --------------------------}%
+  \hvfloat at typeout{>>>do at hvFloat@doublePage: begin with definitions of \hv at floatObject}%
+  \global\hv at leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet at bindCorrection\relax
+  \global\hv at tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet at bindCorrection\relax
+  \xdef\hv at caption@format at temp{\hv at caption@format}%  it gets lost otherwise for next afterpage
+  \@dblfpbot=0\p@ \@plus 1fil%
+  \global\hv at switchTypefalse
+  \setcounter{hv at tempCNTfigA}{\value{figure}}%
+  \setcounter{hv at tempCNTfigB}{\value{figure}}%
+  \setcounter{hv at tempCNTtabA}{\value{table}}%
+  \setcounter{hv at tempCNTtabB}{\value{table}}%
+  \savebox\hvCaptionBox{%   NO rotation
+    \minipage{\textwidth}%% minipage, to get hyphenation
+      \let\@captype\hv at floatType
+      \caption*{\hv at longCap}%
+    \endminipage}%
+  \global\savebox\hvObjectBox{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
+  \ifnum#1=0\relax    % no rotation, caption below
+%    \hvfloat at typeout{Texthöhe: \the\textheight}%
+%    \hvfloat at typeout{Objekthöhe: \the\ht\hvObjectBox}%
+%    \hvfloat at typeout{Captionhöhe: \the\ht\hvCaptionBox}%
+    \@tempdima=\dimexpr\ht\hvObjectBox+\ht\hvCaptionBox+\abovecaptionskip+\belowcaptionskip +\textfloatsep\relax%+\floatsep\relax
+%    \hvfloat at typeout{Summe: \the\@tempdima}%
+    \ifdim\@tempdima > \dimexpr\textheight-\hv at minTextlines\relax
+%      \hvfloat at typeout{hvfloat: switched to floattype p}%
+      \hv at switchTypetrue
+    \fi
+  \fi
+  \hvfloat at typeout{do at hvFloat@doublePage:hv at tempWidthA=\the\hv at tempWidthA}%
+  \ifhv at forceOutput
+    \do at hvFloat@doublePAGECaptionRight{#1}%   no cheque
+  \else
+  %\checkoddpage
+  \ifoddpage
+    \hvfloat at typeout{do at hvFloat@doublePage:oddpage}%
+    \if at twocolumn
+      \hvfloat at typeout{do at hvFloat@doublePage: oddpage/twocolumn}%
+      \if at firstcolumn
+        \hvfloat at typeout{do at hvFloat@doublePage:oddpage->twocolumn->firstcolumn}%
+        \ifhv at switchType
+          \hvfloat at typeout{hvfloat: switched to floattype p}%
+          \afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}%
+        \else
+          \hvfloat at typeout{calling do at hvFloat@doublePageCaptionRight}%
+          %\afterpage{
+          \afterpage{\do at hvFloat@doublePageCaptionRight{#1}}%}%
+        \fi
+      \else
+%        \hvfloat at typeout{do at hvFloat@doublePage:oddpage->twocolumn->secondcolumn}%
+        \ifhv at tugboat
+          \do at hvFloat@doublePageCaptionRight{#1}%
+        \else
+          \ifhv at switchType
+            \do at hvFloat@doublePAGECaptionRight{#1}%
+          \else
+            \afterpage{\do at hvFloat@doublePageCaptionRight{#1}}%
+          \fi
+        \fi
+      \fi
+    \else% onecolumn
+      \hvfloat at typeout{do at hvFloat@doublePage: oddpage/onecolumn}%
+      \ifhv at switchType
+        \hvfloat at typeout{do at hvFloat@doublePage: oddpage/onecolumn/switchType}%
+        \do at hvFloat@doublePAGECaptionRight{#1}%
+      \else
+        \hvfloat at typeout{do at hvFloat@doublePage: call do at hvFloat@doublePageCaptionRight #1}%
+        \ifhv at forceLeft
+          \do at hvFloat@doublePageCaptionRight{#1}%   no \afterpage
+        \else
+          \afterpage{\do at hvFloat@doublePageCaptionRight{#1}}%
+        \fi
+      \fi
+    \fi  
+  \else% we have an even page
+    \hvfloat at typeout{do at hvFloat@doublePage:evenpage -> (\thepage)}%
+    %\typeout{>>>>Setze hv at atPageBeginfalse}%
+    \global\hv at atPageBeginfalse
+    \stepcounter{hvfloat at ref}%
+    \zsavepos{\thehvfloat at ref}%
+    \@tempy=\dimexpr-\zposy{\thehvfloat at ref} sp+\paperheight-1in-\topmargin-\headheight-\headsep\relax
+    \@tempx=\dimexpr-\zposx{\thehvfloat at ref} sp+\evensidemargin+1in\relax
+    %\typeout{>>>>\the\@tempx >>>>>\the\@tempy >>>>\f at size}%
+    \ifdim\@tempy > \dimexpr\f at size pt + 2pt % Interlinespace
+      %\typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat at ref}%
+    \else
+      \ifdim\@tempx = \z@ 
+        %\typeout{>>>>Case 2,  Absolut oben links auf der Seite  \thehvfloat at ref }%
+        \global\hv at atPageBegintrue
+      \else
+        %\typeout{>>>>Case 1,  Oben auf der Seite  \thehvfloat at ref, aber nicht am Anfang der Zeile}%
+      \fi
+    \fi
+  %---------
+    \ifhv at atPageBegin% At the top left of the even page -> output image
+       \do at hvFloat@doublePageCaptionRight{#1}
+    \else
+      \if at twocolumn
+        \if at firstcolumn
+          \ifhv at switchType
+            \afterpage{\afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}}%
+          \else
+            \afterpage{\afterpage{\afterpage{\do at hvFloat@doublePageCaptionRight{#1}}}}%
+          \fi
+        \else% second column
+          \ifhv at switchType
+            \afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}%
+          \else
+            %\afterpage{
+            \afterpage{\do at hvFloat@doublePageCaptionRight{#1}}%}%
+          \fi
+        \fi
+      \else% onecolumn
+        \hvfloat at typeout{do at hvFloat@doublePage:evenpage/onecolumn -> (\thepage)}%
+        \ifhv at switchType
+          \hvfloat at typeout{do at hvFloat@doublePage:evenpage/onecolumn/switchType -> (\thepage)}%
+          \afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}%
+        \else
+          \hvfloat at typeout{do at hvFloat@doublePage:evenpage/onecolumn/noSwitchType -> (\thepage)}%
+          \ifhv at forceLeft
+            \hvfloat at typeout{do at hvFloat@doublePage:evenpage/onecolumn/noSwitchType/forceLeft -> (\thepage)}%
+            \afterpage{\do at hvFloat@doublePageCaptionRight{#1}}%
+          \else
+            \afterpage{\afterpage{\do at hvFloat@doublePageCaptionRight{#1}}}%
+          \fi
+        \fi
+      \fi
+    \fi
+  \fi
+  \let\@fptop\hv at fptop
+  \fi
+ \endgroup% started at main macro \hvFloat
+ \hvfloat at typeout{----------------------------- do at hvFloat@doublePage#1 ... Ende ----------------------}%
+}
+%
+\def\do at hvFloat@doublePageCaptionRight#1{%  image on left and right page with caption on the right page ----------------------------------
+  \setcounter{topnumber}{1}%
+  \setcounter{dbltopnumber}{1}%
+  \hvfloat at typeout{do at hvFloat@doublePageCaptionRight->start}%
+  \do at hvFloat@doublePageCaptionRightObjectLeft{0pt}% 
+  \do at hvFloat@doublePageCaptionRightObjectRight{#1}%
+}
+%
+\def\do at hvFloat@doublePageCaptionRightObjectLeft#1{% left part of the object
+  \begin{\hv at floatType*}[t]
+    \hvfloat at typeout{>>>doublePage: begin with left side of the object \hv at floatObject}%
+    \hv at set@noverticalSpace
+    \hfuzz=\maxdimen
+    \let\c at hv@tempCNTfigA\c at figure
+    \let\c at hv@tempCNTtabA\c at table
+    \expandafter\hvFloatSet\expandafter{\hv at save@setting}% 
+    \hvfloat at typeout{Float position parameter is for left page: !t}%    
+    \global\savebox{\hvObjectBox}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
+    \clipbox*{0 -\depth{} \hv at leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
+    \ifx\hv at label\@empty
+    \else
+      \ifx\hv at floatType\hv at figure
+        \global\refstepcounter{hv at tempCNTfigA}%
+      \else
+        \global\refstepcounter{hv at tempCNTtabA}%   before caption
+      \fi
+      \label{\hv at label}%
+    \fi        
+    \ifhv at global@sameHeight
+      \hvfloat at typeout{text should be of same height of both pages}%
+      \par\noindent\phantom{\parbox{\textwidth}{\caption*{\hv at longCap}}}%
+%      \vspace{-2pt}%
+    \fi
+    \hv at reset@noverticalSpace
+    \hvfloat at typeout{>>>doublePage: end with left side of the object \hv at floatObject}%
+  \end{\hv at floatType*}%
+}
+
+\def\do at hvFloat@doublePageCaptionRightObjectRight#1{% right part of the object
+  \begin{\hv at floatType*}[t]
+    \hvfloat at typeout{>>>doublePage: begin with right side of the object \hv at floatObject}%
+    \hv at set@noverticalSpace
+    \hfuzz=\maxdimen
+    \let\c at hv@tempCNTfigA\c at figure
+    \let\c at hv@tempCNTtabA\c at table
+    \expandafter\hvFloatSet\expandafter{\hv at save@setting}%    
+    \global\savebox\hvObjectBox{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
+    \hv at tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet at bindCorrection\relax%   FÜR DTK
+    \hspace*{-\hv at tempWidthA}%
+    \hv at leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet at bindCorrection\relax%  FÜR FTK
+    \savebox\hv at rightBox{\clipbox*{\hv at leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}}%
+    \hv at tempWidthB=\dimexpr\textwidth-\wd\hv at rightBox-\hvSet at bindCorrection+1in+\oddsidemargin-\hv at floatCapSep\relax
+    \hvfloat at typeout{Height of right box: \the\ht\hv at rightBox}%
+    \hvfloat at typeout{Depth of right box : \the\dp\hv at rightBox}%
+       \ifdim\dp\hv at rightBox > \z@
+           \raisebox{\depth}{\usebox\hv at rightBox}%
+       \else
+         \usebox\hv at rightBox
+       \fi
+       \c at hv@tempCNTfigB=\numexpr\c at figure-1\relax
+       \c at hv@tempCNTtabB=\numexpr\c at table-1\relax
+       \ifx\hv at label\@empty\else
+         \ifx\hv at floatType\hv at figure
+           \refstepcounter{hv at tempCNTfigB}%
+         \else
+           \refstepcounter{hv at tempCNTtabB}%   before caption
+         \fi
+         \label{\hv at label-2}%
+       \fi        
+       \ifx\hv at caption@format at temp\@empty\else
+         \expandafter\captionsetup\expandafter{\hv at caption@format at temp}%
+       \fi
+       \c at figure=\numexpr\c at hv@tempCNTfigB-1\relax
+       \c at table=\numexpr\c at hv@tempCNTtabB-1\relax
+       \ifnum#1>\z@		% caption on the right
+         \hvfloat at typeout{doublePage: capAngle=\hvSet at capAngle}%
+         \ifnum\hvSet at capAngle > \z@
+           \hspace{\hv at floatCapSep}%        
+           \rlap{\rotatebox{\hvSet at capAngle}{\parbox[b]{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{%
+             \abovecaptionskip=0pt% local inside parbox
+             \belowcaptionskip=0pt% local inside parbox
+             \ifx\relax\hv at shortCap\relax
+               \caption{\hv at longCap}%
+             \else
+               \caption[\hv at shortCap]{\hv at longCap}%
+             \fi
+           }}}%
+           \ifx\hv at label\@empty\else\label{\hv at label-cap}\fi
+         \else
+           \hv at tempWidthB=\dimexpr\textwidth-\wd\hv at rightBox-\hvSet at bindCorrection+1in+\oddsidemargin-\hv at floatCapSep\relax
+           \hspace{\hv at floatCapSep}%
+           \rlap{\parbox[b][\dimexpr\ht\hv at rightBox+\dp\hv at rightBox][\hv@@capVPos]{\hv at tempWidthB}{%
+             \abovecaptionskip=0pt % local inside parbox
+             \belowcaptionskip=0pt % local inside parbox
+             \ifx\hv at shortCap\@empty
+               \caption{\hv at longCap}%
+             \else
+               \caption[\hv at shortCap]{\hv at longCap}%
+             \fi
+           }}%
+           \ifx\hv at label\@empty\else\label{\hv at label-cap}\fi
+         \fi
+       \else % #1 = 0 caption below
+         \ifx\relax\hv at shortCap\relax
+           \caption{\hv at longCap}%
+         \else
+           \caption[\hv at shortCap]{\hv at longCap}%
+         \fi
+         \ifx\hv at label\@empty\else\label{\hv at label-cap}\fi
+       \fi
+    \vspace{0pt}%
+    \hv at reset@noverticalSpace
+    \hvfloat at typeout{>>>doublePage: end with right side of the object \hv at floatObject}%
+  \end{\hv at floatType*}
+}


Property changes on: trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat-3.inc
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty	2024-03-04 21:10:29 UTC (rev 70393)
+++ trunk/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty	2024-03-04 21:10:46 UTC (rev 70394)
@@ -1,4 +1,4 @@
-%% $Id: hvfloat.sty 774 2023-10-16 13:44:29Z herbert $
+%% $Id: hvfloat.sty 876 2024-03-03 14:04:56Z herbert $
 %%
 %%
 %% IMPORTANT NOTICE:
@@ -6,7 +6,7 @@
 %% This is file `hvfloat.sty',
 %%
 %% Herbert Voss <hvoss at tug.org>
-%% Copyright (C) 2003-23
+%% Copyright (C) 2003-24
 %%
 %% This program can be redistributed and/or modified under the terms
 %% of the LaTeX Project Public License Distributed from CTAN archives
@@ -16,8 +16,8 @@
 %%   `hvfloat' offers rotating of captions and objects for floats
 %%
 \NeedsTeXFormat{LaTeX2e}
-\def\fileversion{2.47}
-\def\filedate{2023/10/16}
+\def\fileversion{2.48}
+\def\filedate{2024/03/03}
 \ProvidesPackage{hvfloat}[\filedate\space v\fileversion\space special floating objects (hv)]
 \let\hvFloatFileVersion\fileversion
 %
@@ -49,11 +49,21 @@
 \RequirePackage{expl3,multido}
 \RequirePackage{graphicx}
 \RequirePackage{varwidth}
+\RequirePackage{fbox}
 
 \RequirePackage{xkeyval}
 \RequirePackage{ifoddpage}
 \RequirePackage{afterpage}
 
+\RequirePackage{zref-savepos}
+\newdimen\@tempx
+\newdimen\@tempy
+\newcounter{hvfloat at ref}
+\renewcommand\thehvfloat at ref{tmp@\arabic{hvfloat at ref}}
+\setcounter{hvfloat at ref}{0}
+\newif\ifhv at atPageBegin
+
+
 \ifhv at hyperref
   \RequirePackage{hyperref}
 \fi
@@ -265,6 +275,9 @@
 \define at key{hvSet}{sepLineskip}{\def\hv at sepLineskip{#1}}%
 \define at key{hvSet}{minTextlines}{\setlength\hv at minTextlines{#1\baselineskip}}%
 \define at boolkey{hvSet}[hv@]{objectFrame}[true]{}% 	a frame around the object with no separation
+\define at key{hvSet}{fboxLines}[ltrb]{\def\hv at fboxLines{#1}}%
+\define at key{hvSet}{fboxSep}[0pt]{\def\hv at fboxSep{#1}}%
+
 \define at key{hvSet}{style}{%
   \@ifundefined{hv@#1}%
     {\errmessage{Custom style `#1' undefined}}%
@@ -290,7 +303,8 @@
 	onlyText=false, wide=false, fullpage=false, FULLPAGE=false, 
 	doubleFULLPAGE=false, doublePage=false, doublePAGE=false,
         multiFloat=false,subFloat=false,inMargin=false,
-	separatorLine,objectFrame=false,multiFloatSkip=\normalbaselineskip,
+	separatorLine,objectFrame=false, fboxLines={ltrb}, fboxSep=0pt,
+	multiFloatSkip=\normalbaselineskip,
 	capFormat={}, subcapFormat={}, twoColumnCaption=false,
 	sameHeight=false,
 	bindCorr=\z@,sepLineskip=0pt,
@@ -459,13 +473,13 @@
     \ifhv at fbox
       \fbox{\parbox{\wd\hvObjectBox}{\usebox{\hvObjectBox}}}%
     \else     
-      \parbox{\wd\hvObjectBox}{\ifhv at objectFrame\frame{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi}%
+      \parbox{\wd\hvObjectBox}{\ifhv at objectFrame\fbox[boxsep=\hv at fboxSep,,\hv at fboxLines]{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi}%
     \fi
   \or
     \ifhv at fbox
       \fbox{\raisebox{-\height}{\usebox{\hvObjectBox}}}%
     \else     
-      \raisebox{-\height}{\ifhv at objectFrame\frame{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi}%
+      \raisebox{-\height}{\ifhv at objectFrame\fbox[boxsep=\hv at fboxSep,,\hv at fboxLines]{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi}%
     \fi
   \or
     \ifhv at fbox
@@ -472,7 +486,7 @@
       \fbox{\usebox{\hvObjectBox}}%
     \else     
       % rotated object with a depth need to raise up the \depth
-      \ifhv at objectFrame\frame{\usebox{\hvObjectBox}}\else\raisebox{\depth}{\usebox{\hvObjectBox}}\fi%
+      \ifhv at objectFrame\fbox[boxsep=\hv at fboxSep,,\hv at fboxLines]{\usebox{\hvObjectBox}}\else\raisebox{\depth}{\usebox{\hvObjectBox}}\fi%
     \fi
   \fi
 }
@@ -523,6 +537,8 @@
 
 \def\hvFloat at i*{\@ifnextchar[{\do at hvFloat}{\do at hvFloat[]}}
 \def\do at hvFloat[#1]{%
+  %\marginnote{\textbf{hvFloat}}%
+  \savebox\hvObjectBox{}%  
   \begingroup
   \hvWideWidth=\the\dimexpr\columnwidth+\marginparwidth+\marginparsep\relax%
 %  \setlength\hvWideWidth{\dimexpr\textwidth+\marginparwidth+\marginparsep}%
@@ -603,7 +619,7 @@
   \ifx\relax#2\relax 
     \setkeys{hvSet}{nonFloat,onlyText}%
     \xdef\hv at save@setting{\hv at save@setting,nonFloat,onlyText}%  for later use after \endgroup inside figure/table env
-  \else    
+  \else
     \xdef\hv at save@setting{\hv at save@setting}%  for later use after \endgroup inside figure/table env
   \fi
 %  \xdef\hv at floatListOfExt{\@nameuse{ext@\hv at floatType}}%
@@ -677,15 +693,16 @@
     \ifhv at useOBox
       \let\hvObjectBox\hvOBox
     \else
-      \savebox\hvObjectBox{\hv at floatObject}%
+      \global\savebox\hvObjectBox{\hv at floatObject}%
     \fi
   \else
-    \savebox\hvObjectBox{%
+    \global\savebox\hvObjectBox{%
       \rotatebox{\hvSet at objectAngle}{%
         \ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi
       }%
     }%
   \fi
+  \ifhv at useOBox\global\savebox\hvOBox{}\fi
   \setlength\hvObjectWidth{\wd\hvObjectBox}%
 %
 % Now we save the caption with its defined \hvCapWidth
@@ -736,7 +753,7 @@
       \fi
     \fi
   \fi
-  \saveCaptionSkip% we put this space ourselve
+  \saveCaptionSkip % we put this space ourselve
   \ifnum\hvSet at capAngle=0 % need rotation?
     \savebox\hvCaptionBox{%   NO rotation
       \minipage[b]{\hvCapWidth}%% minipage, to get hyphenation
@@ -759,7 +776,7 @@
 	      \fi
 	    \fi
 	  \fi
-	\else
+	\else 
 	  \ifhv at onlyText
 	    \hv at longCap
   	  \else
@@ -770,7 +787,7 @@
           \fi
         \fi
 	\fi
-      \endminipage
+    \endminipage
     }%     end CaptionBox without rotation
   \else
     \savebox\hvCaptionBox{%   with Rotation
@@ -812,7 +829,7 @@
   \ifx\hvSet at floatPos\@empty      % use type default
   \else
     \@namedef{fps@\hv at floatType}{\hvSet at floatPos}%
-  \fi   
+  \fi
   \ifhv at nonFloat
     \noindent
     \begingroup%			Start the nonfloat part
@@ -827,7 +844,7 @@
       \begin{\hv at floatType}%		Start the floating environment
     \fi
   \fi
-  %%\checkoddpage
+  \checkoddpage
   \ifx\hvSet at objectPos\hv at Right\raggedleft\fi
   \ifx\hvSet at objectPos\hv at Center
     \ifhv at nonFloat\hspace*{\fill}\else\centering\fi
@@ -957,7 +974,7 @@
         \fbox{\usebox{\hvObjectBox}}\\[0.5\hvAboveCaptionSkip]%
           \fbox{\usebox{\hvCaptionBox}}%
         \else
-          \ifhv at objectFrame\frame{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi\\[0.5\hvAboveCaptionSkip]%
+          \ifhv at objectFrame\fbox[boxsep=\hv at fboxSep,,\hv at fboxLines]{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi\\[0.5\hvAboveCaptionSkip]%
           \usebox{\hvCaptionBox}%
         \fi
       \end{minipage}%
@@ -1020,11 +1037,12 @@
 % First we save the object in \hvObjectBox
 %
   \ifnum\hvSet at objectAngle=0 % rotate the object?
-    \ifhv at useOBox\let\hvObjectBox\hvOBox\else\savebox\hvObjectBox{\hv at floatObject}\fi
+    \ifhv at useOBox\global\let\hvObjectBox\hvOBox\else\global\savebox\hvObjectBox{\hv at floatObject}\fi
   \else
-    \savebox\hvObjectBox{\rotatebox{\hvSet at objectAngle}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}}%
+    \global\savebox\hvObjectBox{\rotatebox{\hvSet at objectAngle}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}}%
   \fi
   \setlength\hvObjectWidth{\wd\hvObjectBox}%
+    \ifhv at useOBox\global\savebox\hvOBox{}\fi
 %
 % Now we save the caption with its defined \hvCapWidth
 % 
@@ -1200,7 +1218,7 @@
         \fbox{\usebox{\hvObjectBox}}\\[0.5\hvAboveCaptionSkip]%
           \fbox{\usebox{\hvCaptionBox}}%
         \else
-          \ifhv at objectFrame\frame{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi\\[0.5\hvAboveCaptionSkip]%
+          \ifhv at objectFrame\fbox[boxsep=\hv at fboxSep,,\hv at fboxLines]{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi\\[0.5\hvAboveCaptionSkip]%
           \usebox{\hvCaptionBox}%
         \fi
       \end{minipage}%
@@ -1425,245 +1443,18 @@
 }
 %
 
-
-%% ------------------------------------- the doublepage obejcts ---------------------------
-%% ||1in+evenside --- |1in+oddside ---||
-%
-\def\do at hvFloat@doublePage#1{%  image on left and right page with caption on the right page 
-  % #1-> 0/1 caption under/right
-  \hvfloat at typeout{----------------------------- do at hvFloat@doublePage#1 --------------------------}%
-  \hvfloat at typeout{>>>do at hvFloat@doublePage: begin with definitions of \hv at floatObject}%
-  \global\hv at leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet at bindCorrection\relax
-  \global\hv at tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet at bindCorrection\relax
-  \xdef\hv at caption@format at temp{\hv at caption@format}%  it gets lost otherwise for next afterpage
-  \@dblfpbot=0\p@ \@plus 1fil%
-  \global\hv at switchTypefalse
-  \setcounter{hv at tempCNTfigA}{\value{figure}}%
-  \setcounter{hv at tempCNTfigB}{\value{figure}}%
-  \setcounter{hv at tempCNTtabA}{\value{table}}%
-  \setcounter{hv at tempCNTtabB}{\value{table}}%
-  \savebox\hvCaptionBox{%   NO rotation
-    \minipage{\textwidth}%% minipage, to get hyphenation
-      \let\@captype\hv at floatType
-      \caption*{\hv at longCap}%
-    \endminipage}%
-  \savebox\hvObjectBox{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
-  \ifnum#1=0\relax    % no rotation, caption below
-%    \hvfloat at typeout{Texthöhe: \the\textheight}%
-%    \hvfloat at typeout{Objekthöhe: \the\ht\hvObjectBox}%
-%    \hvfloat at typeout{Captionhöhe: \the\ht\hvCaptionBox}%
-    \@tempdima=\dimexpr\ht\hvObjectBox+\ht\hvCaptionBox+\abovecaptionskip+\belowcaptionskip +\textfloatsep\relax%+\floatsep\relax
-%    \hvfloat at typeout{Summe: \the\@tempdima}%
-    \ifdim\@tempdima > \dimexpr\textheight-\hv at minTextlines\relax
-%      \hvfloat at typeout{hvfloat: switched to floattype p}%
-      \hv at switchTypetrue
-    \fi
-  \fi
-  \hvfloat at typeout{do at hvFloat@doublePage:hv at tempWidthA=\the\hv at tempWidthA}%
-  \ifhv at forceOutput
-    \do at hvFloat@doublePAGECaptionRight{#1}%   no cheque
-  \else
-  %\checkoddpage
-  \ifoddpage
-    \hvfloat at typeout{do at hvFloat@doublePage:oddpage}%
-    \if at twocolumn
-      \hvfloat at typeout{do at hvFloat@doublePage: oddpage/twocolumn}%
-      \if at firstcolumn
-        \hvfloat at typeout{do at hvFloat@doublePage:oddpage->twocolumn->firstcolumn}%
-        \ifhv at switchType
-          \hvfloat at typeout{hvfloat: switched to floattype p}%
-          \afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}%
-        \else
-          \hvfloat at typeout{calling do at hvFloat@doublePageCaptionRight}%
-          %\afterpage{
-          \afterpage{\do at hvFloat@doublePageCaptionRight{#1}}%}%
-        \fi
-      \else
-%        \hvfloat at typeout{do at hvFloat@doublePage:oddpage->twocolumn->secondcolumn}%
-        \ifhv at tugboat
-          \do at hvFloat@doublePageCaptionRight{#1}%
-        \else
-          \ifhv at switchType
-            \do at hvFloat@doublePAGECaptionRight{#1}%
-          \else
-            \afterpage{\do at hvFloat@doublePageCaptionRight{#1}}%
-          \fi
-        \fi
-      \fi
-    \else% onecolumn
-      \hvfloat at typeout{do at hvFloat@doublePage: oddpage/onecolumn}%
-      \ifhv at switchType
-        \hvfloat at typeout{do at hvFloat@doublePage: oddpage/onecolumn/switchType}%
-        \do at hvFloat@doublePAGECaptionRight{#1}%
-      \else
-        \hvfloat at typeout{do at hvFloat@doublePage: call do at hvFloat@doublePageCaptionRight #1}%
-        \ifhv at forceLeft
-          \do at hvFloat@doublePageCaptionRight{#1}%   no \afterpage
-        \else
-          \afterpage{\do at hvFloat@doublePageCaptionRight{#1}}%
-        \fi
-      \fi
-    \fi  
-  \else% we have an even page
-    \hvfloat at typeout{do at hvFloat@doublePage:evenpage -> (\thepage)}%
-    \if at twocolumn
-      \if at firstcolumn
-        \ifhv at switchType
-          \afterpage{\afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}}%
-        \else
-          \afterpage{\afterpage{\afterpage{\do at hvFloat@doublePageCaptionRight{#1}}}}%
-        \fi
-      \else% second column
-        \ifhv at switchType
-          \afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}%
-        \else
-          %\afterpage{
-          \afterpage{\do at hvFloat@doublePageCaptionRight{#1}}%}%
-        \fi
-      \fi
-    \else% onecolumn
-      \hvfloat at typeout{do at hvFloat@doublePage:evenpage/onecolumn -> (\thepage)}%
-      \ifhv at switchType
-        \hvfloat at typeout{do at hvFloat@doublePage:evenpage/onecolumn/switchType -> (\thepage)}%
-        \afterpage{\do at hvFloat@doublePAGECaptionRight{#1}}%
-      \else
-        \hvfloat at typeout{do at hvFloat@doublePage:evenpage/onecolumn/noSwitchType -> (\thepage)}%
-        \ifhv at forceLeft
-          \hvfloat at typeout{do at hvFloat@doublePage:evenpage/onecolumn/noSwitchType/forceLeft -> (\thepage)}%
-          \afterpage{\do at hvFloat@doublePageCaptionRight{#1}}%
-        \else
-          \afterpage{\afterpage{\do at hvFloat@doublePageCaptionRight{#1}}}%
-        \fi
-      \fi
-    \fi
-  \fi
-  \let\@fptop\hv at fptop
-  \fi
- \endgroup% started at main macro \hvFloat
- \hvfloat at typeout{----------------------------- do at hvFloat@doublePage#1 ... Ende ----------------------}%
-}
-%
-\def\do at hvFloat@doublePageCaptionRight#1{%  image on left and right page with caption on the right page ----------------------------------
-  \hvfloat at typeout{do at hvFloat@doublePageCaptionRight->start}%
-  \do at hvFloat@doublePageCaptionRightObjectLeft{0pt}% 
-  \afterpage{\do at hvFloat@doublePageCaptionRightObjectRight{#1}}%
-}
-%
-\def\do at hvFloat@doublePageCaptionRightObjectLeft#1{% left part of the object
-  \begin{\hv at floatType*}[!t]
-    \hvfloat at typeout{>>>doublePage: begin with left side of the object \hv at floatObject}%
-    \hv at set@noverticalSpace
-    \hfuzz=\maxdimen
-    \let\c at hv@tempCNTfigA\c at figure
-    \let\c at hv@tempCNTtabA\c at table
-    \expandafter\hvFloatSet\expandafter{\hv at save@setting}% 
-    \hvfloat at typeout{Float position parameter is for left page: !t}%    
-    \global\savebox{\hvObjectBox}{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
-    \clipbox*{0 -\depth{} \hv at leftPageObjectWidth{} \height}{\usebox\hvObjectBox}%
-    \ifx\hv at label\@empty
-    \else
-      \ifx\hv at floatType\hv at figure
-        \global\refstepcounter{hv at tempCNTfigA}%
-      \else
-        \global\refstepcounter{hv at tempCNTtabA}%   before caption
-      \fi
-      \label{\hv at label}%
-    \fi        
-    \ifhv at global@sameHeight
-      \hvfloat at typeout{text should be of same height of both pages}%
-      \par\noindent\phantom{\parbox{\textwidth}{\caption*{\hv at longCap}}}%
-%      \vspace{-2pt}%
-    \fi
-    \hv at reset@noverticalSpace
-    \hvfloat at typeout{>>>doublePage: end with left side of the object \hv at floatObject}%
-  \end{\hv at floatType*}%
-}
-
-\def\do at hvFloat@doublePageCaptionRightObjectRight#1{% right part of the object
-  \begin{\hv at floatType*}[!t]
-    \hvfloat at typeout{>>>doublePage: begin with right side of the object \hv at floatObject}%
-    \hv at set@noverticalSpace
-    \hfuzz=\maxdimen
-    \expandafter\hvFloatSet\expandafter{\hv at save@setting}%    
-    \savebox\hvObjectBox{\ifhv at useOBox\usebox{\hvOBox}\else\hv at floatObject\fi}%
-    \hv at tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet at bindCorrection\relax%   FÜR DTK
-    \hspace*{-\hv at tempWidthA}%
-    \hv at leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet at bindCorrection\relax%  FÜR FTK
-    \savebox\hv at rightBox{\clipbox*{\hv at leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}}%
-    \hv at tempWidthB=\dimexpr\textwidth-\wd\hv at rightBox-\hvSet at bindCorrection+1in+\oddsidemargin-\hv at floatCapSep\relax
-    \hvfloat at typeout{Height of right box: \the\ht\hv at rightBox}%
-    \hvfloat at typeout{Depth of right box : \the\dp\hv at rightBox}%
-       \ifdim\dp\hv at rightBox > \z@
-           \raisebox{\depth}{\usebox\hv at rightBox}%
-       \else
-         \usebox\hv at rightBox
-       \fi
-       \c at hv@tempCNTfigB=\numexpr\c at figure-1\relax
-       \c at hv@tempCNTtabB=\numexpr\c at table-1\relax
-       \ifx\hv at label\@empty\else
-         \ifx\hv at floatType\hv at figure
-           \refstepcounter{hv at tempCNTfigB}%
-         \else
-           \refstepcounter{hv at tempCNTtabB}%   before caption
-         \fi
-         \label{\hv at label-2}%
-       \fi        
-       \ifx\hv at caption@format at temp\@empty\else
-         \expandafter\captionsetup\expandafter{\hv at caption@format at temp}%
-       \fi
-       \c at figure=\numexpr\c at hv@tempCNTfigB-1\relax
-       \c at table=\numexpr\c at hv@tempCNTtabB-1\relax
-       \ifnum#1>\z@		% caption on the right
-         \hvfloat at typeout{doublePage: capAngle=\hvSet at capAngle}%
-         \ifnum\hvSet at capAngle > \z@
-           \hspace{\hv at floatCapSep}%        
-           \rlap{\rotatebox{\hvSet at capAngle}{\parbox[b]{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{%
-             \abovecaptionskip=0pt% local inside parbox
-             \belowcaptionskip=0pt% local inside parbox
-             \ifx\relax\hv at shortCap\relax
-               \caption{\hv at longCap}%
-             \else
-               \caption[\hv at shortCap]{\hv at longCap}%
-             \fi
-           }}}%
-           \ifx\hv at label\@empty\else\label{\hv at label-cap}\fi
-         \else
-           \hv at tempWidthB=\dimexpr\textwidth-\wd\hv at rightBox-\hvSet at bindCorrection+1in+\oddsidemargin-\hv at floatCapSep\relax
-           \hspace{\hv at floatCapSep}%
-           \rlap{\parbox[b][\dimexpr\ht\hv at rightBox+\dp\hv at rightBox][\hv@@capVPos]{\hv at tempWidthB}{%
-             \abovecaptionskip=0pt % local inside parbox
-             \belowcaptionskip=0pt % local inside parbox
-             \ifx\hv at shortCap\@empty
-               \caption{\hv at longCap}%
-             \else
-               \caption[\hv at shortCap]{\hv at longCap}%
-             \fi
-           }}%
-           \ifx\hv at label\@empty\else\label{\hv at label-cap}\fi
-         \fi
-       \else % #1 = 0 caption below
-         \ifx\relax\hv at shortCap\relax
-           \caption{\hv at longCap}%
-         \else
-           \caption[\hv at shortCap]{\hv at longCap}%
-         \fi
-         \ifx\hv at label\@empty\else\label{\hv at label-cap}\fi
-       \fi
-    \vspace{0pt}%
-    \hv at reset@noverticalSpace
-    \hvfloat at typeout{>>>doublePage: end with right side of the object \hv at floatObject}%
-  \end{\hv at floatType*}
-}
-%
 \newsavebox\hv at boxLeftPage
 \newsavebox\hv at boxRightPage
+\newif\ifhv at temp
 
-\input{hvfloat-2.inc}
+\input{hvfloat-3.inc}%   doublePage
 
-\input{hvfloat-1.inc}
+\input{hvfloat-2.inc}%   doublePAGE
 
-\input{hvfloat-0.inc}
+\input{hvfloat-1.inc}%   doubleFULLPAGE
 
+\input{hvfloat-0.inc}%   doubleFullPage
+
 \ExplSyntaxOn
 
 \def\getMultiCaptionAndLabel{%
@@ -1695,7 +1486,7 @@
 }
 
 \def\getMultiObjectAndLabel{%
-  \global\sbox\hvObjectBox{%
+  \global\savebox\hvObjectBox{%
     \ifhv at vFill
       \minipage[b][\textheight][s]{\columnwidth}%
     \else
@@ -1711,7 +1502,7 @@
     \hv at cnta=1
     \loop
       \def\@temp{\clist_item:Nn\l_clist_Object{\hv at cnta}}%
-      \ifhv at objectFrame\frame{\@temp}\else\@temp\fi
+      \ifhv at objectFrame\fbox[boxsep=\hv at fboxSep,,\hv at fboxLines]{\@temp}\else\@temp\fi
       \edef\@tempa{\clist_item:Nn\l_clist_Label{\hv at cnta}}%
       \edef\@tempb{\clist_item:Nn\l_clist_Type{\hv at cnta}}%
       \edef\@captype{hv at p\@tempb}%
@@ -1746,7 +1537,7 @@
 }
 
 \def\getMultiSubObjectAndLabel{%
-  \global\sbox\hvObjectBox{%
+  \global\savebox\hvObjectBox{%
     \expandafter\hvFloatSet\expandafter{\hv at save@setting}%    
     \ifhv at vFill
       \minipage[b][\textheight][s]{\columnwidth}%
@@ -1774,7 +1565,7 @@
     \fi
     \loop
       \def\@temp{\clist_item:Nn\l_clist_Object{\hv at cnta}}%
-      \ifhv at objectFrame\frame{\@temp}\else\@temp\fi
+      \ifhv at objectFrame\fbox[boxsep=\hv at fboxSep,,\hv at fboxLines]{\@temp}\else\@temp\fi
       \begingroup
       \edef\@tempa{\clist_item:Nn\l_clist_LofCaption{\hv at cnta}}%
       \ifx\@tempa\@empty
@@ -1850,9 +1641,9 @@
     \ifhv at subFloat
       \getMultiSubObjectAndLabel
     \else
-      \global\sbox\hvObjectBox{%
+      \global\savebox\hvObjectBox{%
         \refstepcounter{\@captype}%
-        \ifhv at objectFrame\frame{\hv at floatObject}\else\hv at floatObject\fi
+        \ifhv at objectFrame\fbox[boxsep=\hv at fboxSep,,\hv at fboxLines]{\hv at floatObject}\else\hv at floatObject\fi
         \expandafter\ifx\expandafter\relax\hv at label\relax
         \else
           \expandafter\label\expandafter{\hv at label}%



More information about the tex-live-commits mailing list.