diff options
Diffstat (limited to 'macros/latex/contrib/hvfloat/latex/hvfloat.sty')
-rw-r--r-- | macros/latex/contrib/hvfloat/latex/hvfloat.sty | 309 |
1 files changed, 50 insertions, 259 deletions
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat.sty b/macros/latex/contrib/hvfloat/latex/hvfloat.sty index 41c8042a4c..a5a5e51c65 100644 --- a/macros/latex/contrib/hvfloat/latex/hvfloat.sty +++ b/macros/latex/contrib/hvfloat/latex/hvfloat.sty @@ -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@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@ref} +\renewcommand\thehvfloat@ref{tmp@\arabic{hvfloat@ref}} +\setcounter{hvfloat@ref}{0} +\newif\ifhv@atPageBegin + + \ifhv@hyperref \RequirePackage{hyperref} \fi @@ -265,6 +275,9 @@ \define@key{hvSet}{sepLineskip}{\def\hv@sepLineskip{#1}}% \define@key{hvSet}{minTextlines}{\setlength\hv@minTextlines{#1\baselineskip}}% \define@boolkey{hvSet}[hv@]{objectFrame}[true]{}% a frame around the object with no separation +\define@key{hvSet}{fboxLines}[ltrb]{\def\hv@fboxLines{#1}}% +\define@key{hvSet}{fboxSep}[0pt]{\def\hv@fboxSep{#1}}% + \define@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,20 +473,20 @@ \ifhv@fbox \fbox{\parbox{\wd\hvObjectBox}{\usebox{\hvObjectBox}}}% \else - \parbox{\wd\hvObjectBox}{\ifhv@objectFrame\frame{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi}% + \parbox{\wd\hvObjectBox}{\ifhv@objectFrame\fbox[boxsep=\hv@fboxSep,,\hv@fboxLines]{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi}% \fi \or \ifhv@fbox \fbox{\raisebox{-\height}{\usebox{\hvObjectBox}}}% \else - \raisebox{-\height}{\ifhv@objectFrame\frame{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi}% + \raisebox{-\height}{\ifhv@objectFrame\fbox[boxsep=\hv@fboxSep,,\hv@fboxLines]{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi}% \fi \or \ifhv@fbox \fbox{\usebox{\hvObjectBox}}% \else % rotated object with a depth need to raise up the \depth - \ifhv@objectFrame\frame{\usebox{\hvObjectBox}}\else\raisebox{\depth}{\usebox{\hvObjectBox}}\fi% + \ifhv@objectFrame\fbox[boxsep=\hv@fboxSep,,\hv@fboxLines]{\usebox{\hvObjectBox}}\else\raisebox{\depth}{\usebox{\hvObjectBox}}\fi% \fi \fi } @@ -523,6 +537,8 @@ \def\hvFloat@i*{\@ifnextchar[{\do@hvFloat}{\do@hvFloat[]}} \def\do@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@save@setting{\hv@save@setting,nonFloat,onlyText}% for later use after \endgroup inside figure/table env - \else + \else \xdef\hv@save@setting{\hv@save@setting}% for later use after \endgroup inside figure/table env \fi % \xdef\hv@floatListOfExt{\@nameuse{ext@\hv@floatType}}% @@ -677,15 +693,16 @@ \ifhv@useOBox \let\hvObjectBox\hvOBox \else - \savebox\hvObjectBox{\hv@floatObject}% + \global\savebox\hvObjectBox{\hv@floatObject}% \fi \else - \savebox\hvObjectBox{% + \global\savebox\hvObjectBox{% \rotatebox{\hvSet@objectAngle}{% \ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi }% }% \fi + \ifhv@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@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@onlyText \hv@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@floatPos\@empty % use type default \else \@namedef{fps@\hv@floatType}{\hvSet@floatPos}% - \fi + \fi \ifhv@nonFloat \noindent \begingroup% Start the nonfloat part @@ -827,7 +844,7 @@ \begin{\hv@floatType}% Start the floating environment \fi \fi - %%\checkoddpage + \checkoddpage \ifx\hvSet@objectPos\hv@Right\raggedleft\fi \ifx\hvSet@objectPos\hv@Center \ifhv@nonFloat\hspace*{\fill}\else\centering\fi @@ -957,7 +974,7 @@ \fbox{\usebox{\hvObjectBox}}\\[0.5\hvAboveCaptionSkip]% \fbox{\usebox{\hvCaptionBox}}% \else - \ifhv@objectFrame\frame{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi\\[0.5\hvAboveCaptionSkip]% + \ifhv@objectFrame\fbox[boxsep=\hv@fboxSep,,\hv@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@objectAngle=0 % rotate the object? - \ifhv@useOBox\let\hvObjectBox\hvOBox\else\savebox\hvObjectBox{\hv@floatObject}\fi + \ifhv@useOBox\global\let\hvObjectBox\hvOBox\else\global\savebox\hvObjectBox{\hv@floatObject}\fi \else - \savebox\hvObjectBox{\rotatebox{\hvSet@objectAngle}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}}% + \global\savebox\hvObjectBox{\rotatebox{\hvSet@objectAngle}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}}% \fi \setlength\hvObjectWidth{\wd\hvObjectBox}% + \ifhv@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@objectFrame\frame{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi\\[0.5\hvAboveCaptionSkip]% + \ifhv@objectFrame\fbox[boxsep=\hv@fboxSep,,\hv@fboxLines]{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi\\[0.5\hvAboveCaptionSkip]% \usebox{\hvCaptionBox}% \fi \end{minipage}% @@ -1425,244 +1443,17 @@ } % - -%% ------------------------------------- the doublepage obejcts --------------------------- -%% ||1in+evenside --- |1in+oddside ---|| -% -\def\do@hvFloat@doublePage#1{% image on left and right page with caption on the right page - % #1-> 0/1 caption under/right - \hvfloat@typeout{----------------------------- do@hvFloat@doublePage#1 --------------------------}% - \hvfloat@typeout{>>>do@hvFloat@doublePage: begin with definitions of \hv@floatObject}% - \global\hv@leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection\relax - \global\hv@tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection\relax - \xdef\hv@caption@format@temp{\hv@caption@format}% it gets lost otherwise for next afterpage - \@dblfpbot=0\p@ \@plus 1fil% - \global\hv@switchTypefalse - \setcounter{hv@tempCNTfigA}{\value{figure}}% - \setcounter{hv@tempCNTfigB}{\value{figure}}% - \setcounter{hv@tempCNTtabA}{\value{table}}% - \setcounter{hv@tempCNTtabB}{\value{table}}% - \savebox\hvCaptionBox{% NO rotation - \minipage{\textwidth}%% minipage, to get hyphenation - \let\@captype\hv@floatType - \caption*{\hv@longCap}% - \endminipage}% - \savebox\hvObjectBox{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \ifnum#1=0\relax % no rotation, caption below -% \hvfloat@typeout{Texthöhe: \the\textheight}% -% \hvfloat@typeout{Objekthöhe: \the\ht\hvObjectBox}% -% \hvfloat@typeout{Captionhöhe: \the\ht\hvCaptionBox}% - \@tempdima=\dimexpr\ht\hvObjectBox+\ht\hvCaptionBox+\abovecaptionskip+\belowcaptionskip +\textfloatsep\relax%+\floatsep\relax -% \hvfloat@typeout{Summe: \the\@tempdima}% - \ifdim\@tempdima > \dimexpr\textheight-\hv@minTextlines\relax -% \hvfloat@typeout{hvfloat: switched to floattype p}% - \hv@switchTypetrue - \fi - \fi - \hvfloat@typeout{do@hvFloat@doublePage:hv@tempWidthA=\the\hv@tempWidthA}% - \ifhv@forceOutput - \do@hvFloat@doublePAGECaptionRight{#1}% no cheque - \else - %\checkoddpage - \ifoddpage - \hvfloat@typeout{do@hvFloat@doublePage:oddpage}% - \if@twocolumn - \hvfloat@typeout{do@hvFloat@doublePage: oddpage/twocolumn}% - \if@firstcolumn - \hvfloat@typeout{do@hvFloat@doublePage:oddpage->twocolumn->firstcolumn}% - \ifhv@switchType - \hvfloat@typeout{hvfloat: switched to floattype p}% - \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}% - \else - \hvfloat@typeout{calling do@hvFloat@doublePageCaptionRight}% - %\afterpage{ - \afterpage{\do@hvFloat@doublePageCaptionRight{#1}}%}% - \fi - \else -% \hvfloat@typeout{do@hvFloat@doublePage:oddpage->twocolumn->secondcolumn}% - \ifhv@tugboat - \do@hvFloat@doublePageCaptionRight{#1}% - \else - \ifhv@switchType - \do@hvFloat@doublePAGECaptionRight{#1}% - \else - \afterpage{\do@hvFloat@doublePageCaptionRight{#1}}% - \fi - \fi - \fi - \else% onecolumn - \hvfloat@typeout{do@hvFloat@doublePage: oddpage/onecolumn}% - \ifhv@switchType - \hvfloat@typeout{do@hvFloat@doublePage: oddpage/onecolumn/switchType}% - \do@hvFloat@doublePAGECaptionRight{#1}% - \else - \hvfloat@typeout{do@hvFloat@doublePage: call do@hvFloat@doublePageCaptionRight #1}% - \ifhv@forceLeft - \do@hvFloat@doublePageCaptionRight{#1}% no \afterpage - \else - \afterpage{\do@hvFloat@doublePageCaptionRight{#1}}% - \fi - \fi - \fi - \else% we have an even page - \hvfloat@typeout{do@hvFloat@doublePage:evenpage -> (\thepage)}% - \if@twocolumn - \if@firstcolumn - \ifhv@switchType - \afterpage{\afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}}% - \else - \afterpage{\afterpage{\afterpage{\do@hvFloat@doublePageCaptionRight{#1}}}}% - \fi - \else% second column - \ifhv@switchType - \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}% - \else - %\afterpage{ - \afterpage{\do@hvFloat@doublePageCaptionRight{#1}}%}% - \fi - \fi - \else% onecolumn - \hvfloat@typeout{do@hvFloat@doublePage:evenpage/onecolumn -> (\thepage)}% - \ifhv@switchType - \hvfloat@typeout{do@hvFloat@doublePage:evenpage/onecolumn/switchType -> (\thepage)}% - \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}% - \else - \hvfloat@typeout{do@hvFloat@doublePage:evenpage/onecolumn/noSwitchType -> (\thepage)}% - \ifhv@forceLeft - \hvfloat@typeout{do@hvFloat@doublePage:evenpage/onecolumn/noSwitchType/forceLeft -> (\thepage)}% - \afterpage{\do@hvFloat@doublePageCaptionRight{#1}}% - \else - \afterpage{\afterpage{\do@hvFloat@doublePageCaptionRight{#1}}}% - \fi - \fi - \fi - \fi - \let\@fptop\hv@fptop - \fi - \endgroup% started at main macro \hvFloat - \hvfloat@typeout{----------------------------- do@hvFloat@doublePage#1 ... Ende ----------------------}% -} -% -\def\do@hvFloat@doublePageCaptionRight#1{% image on left and right page with caption on the right page ---------------------------------- - \hvfloat@typeout{do@hvFloat@doublePageCaptionRight->start}% - \do@hvFloat@doublePageCaptionRightObjectLeft{0pt}% - \afterpage{\do@hvFloat@doublePageCaptionRightObjectRight{#1}}% -} -% -\def\do@hvFloat@doublePageCaptionRightObjectLeft#1{% left part of the object - \begin{\hv@floatType*}[!t] - \hvfloat@typeout{>>>doublePage: begin with left side of the object \hv@floatObject}% - \hv@set@noverticalSpace - \hfuzz=\maxdimen - \let\c@hv@tempCNTfigA\c@figure - \let\c@hv@tempCNTtabA\c@table - \expandafter\hvFloatSet\expandafter{\hv@save@setting}% - \hvfloat@typeout{Float position parameter is for left page: !t}% - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% - \ifx\hv@label\@empty - \else - \ifx\hv@floatType\hv@figure - \global\refstepcounter{hv@tempCNTfigA}% - \else - \global\refstepcounter{hv@tempCNTtabA}% before caption - \fi - \label{\hv@label}% - \fi - \ifhv@global@sameHeight - \hvfloat@typeout{text should be of same height of both pages}% - \par\noindent\phantom{\parbox{\textwidth}{\caption*{\hv@longCap}}}% -% \vspace{-2pt}% - \fi - \hv@reset@noverticalSpace - \hvfloat@typeout{>>>doublePage: end with left side of the object \hv@floatObject}% - \end{\hv@floatType*}% -} - -\def\do@hvFloat@doublePageCaptionRightObjectRight#1{% right part of the object - \begin{\hv@floatType*}[!t] - \hvfloat@typeout{>>>doublePage: begin with right side of the object \hv@floatObject}% - \hv@set@noverticalSpace - \hfuzz=\maxdimen - \expandafter\hvFloatSet\expandafter{\hv@save@setting}% - \savebox\hvObjectBox{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \hv@tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection\relax% FÜR DTK - \hspace*{-\hv@tempWidthA}% - \hv@leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection\relax% FÜR FTK - \savebox\hv@rightBox{\clipbox*{\hv@leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}}% - \hv@tempWidthB=\dimexpr\textwidth-\wd\hv@rightBox-\hvSet@bindCorrection+1in+\oddsidemargin-\hv@floatCapSep\relax - \hvfloat@typeout{Height of right box: \the\ht\hv@rightBox}% - \hvfloat@typeout{Depth of right box : \the\dp\hv@rightBox}% - \ifdim\dp\hv@rightBox > \z@ - \raisebox{\depth}{\usebox\hv@rightBox}% - \else - \usebox\hv@rightBox - \fi - \c@hv@tempCNTfigB=\numexpr\c@figure-1\relax - \c@hv@tempCNTtabB=\numexpr\c@table-1\relax - \ifx\hv@label\@empty\else - \ifx\hv@floatType\hv@figure - \refstepcounter{hv@tempCNTfigB}% - \else - \refstepcounter{hv@tempCNTtabB}% before caption - \fi - \label{\hv@label-2}% - \fi - \ifx\hv@caption@format@temp\@empty\else - \expandafter\captionsetup\expandafter{\hv@caption@format@temp}% - \fi - \c@figure=\numexpr\c@hv@tempCNTfigB-1\relax - \c@table=\numexpr\c@hv@tempCNTtabB-1\relax - \ifnum#1>\z@ % caption on the right - \hvfloat@typeout{doublePage: capAngle=\hvSet@capAngle}% - \ifnum\hvSet@capAngle > \z@ - \hspace{\hv@floatCapSep}% - \rlap{\rotatebox{\hvSet@capAngle}{\parbox[b]{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% - \abovecaptionskip=0pt% local inside parbox - \belowcaptionskip=0pt% local inside parbox - \ifx\relax\hv@shortCap\relax - \caption{\hv@longCap}% - \else - \caption[\hv@shortCap]{\hv@longCap}% - \fi - }}}% - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - \else - \hv@tempWidthB=\dimexpr\textwidth-\wd\hv@rightBox-\hvSet@bindCorrection+1in+\oddsidemargin-\hv@floatCapSep\relax - \hspace{\hv@floatCapSep}% - \rlap{\parbox[b][\dimexpr\ht\hv@rightBox+\dp\hv@rightBox][\hv@@capVPos]{\hv@tempWidthB}{% - \abovecaptionskip=0pt % local inside parbox - \belowcaptionskip=0pt % local inside parbox - \ifx\hv@shortCap\@empty - \caption{\hv@longCap}% - \else - \caption[\hv@shortCap]{\hv@longCap}% - \fi - }}% - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - \fi - \else % #1 = 0 caption below - \ifx\relax\hv@shortCap\relax - \caption{\hv@longCap}% - \else - \caption[\hv@shortCap]{\hv@longCap}% - \fi - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - \fi - \vspace{0pt}% - \hv@reset@noverticalSpace - \hvfloat@typeout{>>>doublePage: end with right side of the object \hv@floatObject}% - \end{\hv@floatType*} -} -% \newsavebox\hv@boxLeftPage \newsavebox\hv@boxRightPage +\newif\ifhv@temp + +\input{hvfloat-3.inc}% doublePage -\input{hvfloat-2.inc} +\input{hvfloat-2.inc}% doublePAGE -\input{hvfloat-1.inc} +\input{hvfloat-1.inc}% doubleFULLPAGE -\input{hvfloat-0.inc} +\input{hvfloat-0.inc}% doubleFullPage \ExplSyntaxOn @@ -1695,7 +1486,7 @@ } \def\getMultiObjectAndLabel{% - \global\sbox\hvObjectBox{% + \global\savebox\hvObjectBox{% \ifhv@vFill \minipage[b][\textheight][s]{\columnwidth}% \else @@ -1711,7 +1502,7 @@ \hv@cnta=1 \loop \def\@temp{\clist_item:Nn\l_clist_Object{\hv@cnta}}% - \ifhv@objectFrame\frame{\@temp}\else\@temp\fi + \ifhv@objectFrame\fbox[boxsep=\hv@fboxSep,,\hv@fboxLines]{\@temp}\else\@temp\fi \edef\@tempa{\clist_item:Nn\l_clist_Label{\hv@cnta}}% \edef\@tempb{\clist_item:Nn\l_clist_Type{\hv@cnta}}% \edef\@captype{hv@p\@tempb}% @@ -1746,7 +1537,7 @@ } \def\getMultiSubObjectAndLabel{% - \global\sbox\hvObjectBox{% + \global\savebox\hvObjectBox{% \expandafter\hvFloatSet\expandafter{\hv@save@setting}% \ifhv@vFill \minipage[b][\textheight][s]{\columnwidth}% @@ -1774,7 +1565,7 @@ \fi \loop \def\@temp{\clist_item:Nn\l_clist_Object{\hv@cnta}}% - \ifhv@objectFrame\frame{\@temp}\else\@temp\fi + \ifhv@objectFrame\fbox[boxsep=\hv@fboxSep,,\hv@fboxLines]{\@temp}\else\@temp\fi \begingroup \edef\@tempa{\clist_item:Nn\l_clist_LofCaption{\hv@cnta}}% \ifx\@tempa\@empty @@ -1850,9 +1641,9 @@ \ifhv@subFloat \getMultiSubObjectAndLabel \else - \global\sbox\hvObjectBox{% + \global\savebox\hvObjectBox{% \refstepcounter{\@captype}% - \ifhv@objectFrame\frame{\hv@floatObject}\else\hv@floatObject\fi + \ifhv@objectFrame\fbox[boxsep=\hv@fboxSep,,\hv@fboxLines]{\hv@floatObject}\else\hv@floatObject\fi \expandafter\ifx\expandafter\relax\hv@label\relax \else \expandafter\label\expandafter{\hv@label}% |