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.