summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-03-14 20:45:17 +0000
committerKarl Berry <karl@freefriends.org>2019-03-14 20:45:17 +0000
commitf325d429c265c8eb01cd3b572d5f96207ae8cafa (patch)
tree8af2d34ec53650263f9d007f083fc8a37683f868
parent0f0e72f13860bcbb83239088dbabba756f545229 (diff)
hvfloat (14mar19)
git-svn-id: svn://tug.org/texlive/trunk@50386 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/hvfloat/CTAN.pngbin0 -> 69089 bytes
-rw-r--r--Master/texmf-dist/doc/latex/hvfloat/Changes6
-rw-r--r--Master/texmf-dist/doc/latex/hvfloat/README11
-rw-r--r--Master/texmf-dist/doc/latex/hvfloat/bateaux.jpgbin45694 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/hvfloat/frose.pngbin0 -> 5208 bytes
-rw-r--r--Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdfbin365500 -> 388565 bytes
-rw-r--r--Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex1593
-rw-r--r--Master/texmf-dist/tex/latex/hvfloat/hvfloat-fps.sty2
-rw-r--r--Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty758
9 files changed, 1896 insertions, 474 deletions
diff --git a/Master/texmf-dist/doc/latex/hvfloat/CTAN.png b/Master/texmf-dist/doc/latex/hvfloat/CTAN.png
new file mode 100644
index 00000000000..805ae3be95a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/hvfloat/CTAN.png
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/hvfloat/Changes b/Master/texmf-dist/doc/latex/hvfloat/Changes
index 0893a1900fc..6a1d23d418d 100644
--- a/Master/texmf-dist/doc/latex/hvfloat/Changes
+++ b/Master/texmf-dist/doc/latex/hvfloat/Changes
@@ -1,14 +1,18 @@
hvfloat.sty:
+2.0 2019-03-14 - added support for wide floats, inner/outer captions,
+ fullpage objects for one- or twocolumn mode.
1.2b 2017-12-22 - added option all for hvfloat-fps
1.2a 2017-09-16 - new package for global float setting
1.2 2017-04-28 - fix bug with caption (no entry in lof)
1.1 2012-03-04 - added environment hvFloatEnv
- don't load package ifthen
- load package caption by default
-0.9 2003 Rotating floating objects and captions in different ways
+0.9 2003 - Rotating floating objects and captions in different ways
+
hvfloat.tex: the source of the documentation
hvfloat-fps.sty
+0.02 2017-09-20 - small changes
0.01 2017-09-16 - first CTAN version
diff --git a/Master/texmf-dist/doc/latex/hvfloat/README b/Master/texmf-dist/doc/latex/hvfloat/README
index a8bcb3b5746..66c38bec861 100644
--- a/Master/texmf-dist/doc/latex/hvfloat/README
+++ b/Master/texmf-dist/doc/latex/hvfloat/README
@@ -1,10 +1,15 @@
hvfloat
-hv-float-fps (float placement setting)
+hvfloat-fps (float placement setting)
+hvfloat
Placing figures/tables with various options, like rotating
-the image/table and/or caption.
-
+the image/table and/or caption. Placing object and caption
+side by side in one- and twocolumn mode. Fullpage objects
+with captions on the preceeding or following page in
+one- and twocolumn mode.
%% 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.
+
+hvoss@tug.org \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/hvfloat/bateaux.jpg b/Master/texmf-dist/doc/latex/hvfloat/bateaux.jpg
deleted file mode 100644
index bbf5485f076..00000000000
--- a/Master/texmf-dist/doc/latex/hvfloat/bateaux.jpg
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/hvfloat/frose.png b/Master/texmf-dist/doc/latex/hvfloat/frose.png
new file mode 100644
index 00000000000..0efe947eee4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/hvfloat/frose.png
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf b/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf
index ef686cd1bb7..70258f0ea51 100644
--- a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf
+++ b/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex b/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex
index 76556e3f28c..71048a93a13 100644
--- a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex
+++ b/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex
@@ -1,9 +1,19 @@
+%% $Id: hvfloat.tex 964 2019-03-14 11:37:36Z herbert $
\listfiles
-\documentclass{scrartcl}
-\usepackage[T1]{fontenc}
-\usepackage{libertine}
-\usepackage[scaled=0.85]{beramono}
-\usepackage[utf8]{inputenc}
+\errorcontextlines=100
+\documentclass[twoside,paper=a4]{scrartcl}
+\usepackage{fontspec}
+\usepackage{libertinus}
+%\usepackage[scaled=0.85]{beramono}
+\setmonofont[Scale=MatchLowercase,FakeStretch=0.9]{DejaVu Sans Mono}
+
+\usepackage{microtype}
+\usepackage[english]{babel}
+
+\usepackage[automark]{scrlayer-scrpage}
+\pagestyle{scrheadings}
+
+%\usepackage{showframe}
\usepackage{listings}
%
\lstset{%
@@ -13,38 +23,153 @@
% frame={tb},%
% lineskip=-1pt,%
extendedchars=true,%
- basicstyle={\footnotesize\ttfamily},%
- numbers=left,%
- stepnumber=1,%
- numberstyle=\tiny,%
+ basicstyle={\small\ttfamily},%
+% numbers=left,%
+% stepnumber=1,%
+% numberstyle=\tiny,%
% xleftmargin=2em,%
breaklines=true}
%
-\usepackage[fbox]{hvfloat}
-\let\hvVersion\fileversion
+
\usepackage{graphicx}
+\usepackage{xcolor}
\usepackage{url}
-\usepackage{tabularx}
+\usepackage{booktabs,xltabular}
\usepackage{lscape}
+\usepackage{varioref}
\usepackage{multicol}
-\usepackage[urlcolor=blue, linktocpage, a4paper, colorlinks=true]{hyperref}
+\usepackage{blindtext}
+
+\usepackage{marginnote}
+
+%\usepackage{imakeidx}
+\usepackage{xindex}
+\makeindex
+
+\usepackage{hvindex}
+\usepackage[all=!htb]{hvfloat-fps}
+\usepackage[fbox,hyperref]{hvfloat}
+\let\hvVersion\fileversion
+\captionsetup{format=plain,font=sf,labelfont=sf}
+
+
+\hypersetup{urlcolor=blue, linktocpage, colorlinks=true}
+%
+\makeatletter
+
+\def\Lfile#1{\texttt{#1}\index{#1 file@\texttt{#1} (file)}}
+\def\Lext#1{\texttt{.#1}\index{#1 file extension@\texttt{.#1} (file extension)}}
+\def\Ldim#1{\texttt{\textbackslash#1}\index{#1@\texttt{\textbackslash#1} (length)}}
+\def\Lcs#1{\texttt{\textbackslash#1}\index{#1@\texttt{\textbackslash#1}}}
+\def\nxLcs#1{\texttt{\textbackslash#1}}
+\def\Lenv#1{\texttt{#1}\index{#1 environment@\texttt{#1} (environment)}}
+\def\Lpack#1{\texttt{#1}\index{#1 package@\texttt{#1} (package)}}
+\def\Lprog#1{\texttt{#1}\index{#1 program@\texttt{#1} (program)}}
+\def\Loption#1{\texttt{#1}\index{#1@\texttt{#1} (package option)}}
+\def\Lkeyword#1{\texttt{#1}\index{#1@\texttt{#1} (keyword)}}
+\def\Lkeyval#1{\texttt{#1}\index{#1@\texttt{#1} (value)}}
+\def\Lskip#1{\texttt{\textbackslash#1}\index{#1@\texttt{\textbackslash#1} (skip)}}
+\def\Lkeyset#1{\expandafter\Lkeyset@i#1\@nil}
+\def\Lkeyset@i#1=#2\@nil{\texttt{#1=#2}%
+ \index{#1@\texttt{#1} (keyword)}\index{Keyword!#1@\texttt{#1}}
+ \index{#2@\texttt{#2} (value)}\index{Value!#2@\texttt{#2}}}
+
+
+
+\newsavebox\boxdef
+\newenvironment{BDef}
+ {\begin{lrbox}{\boxdef}
+ \def\arraystretch{1.0}
+ \begin{tabular}{@{}l@{}l@{}l@{}}}
+ {\end{tabular}\end{lrbox}
%
-\newcommand\CMD[1]{{\small\ttfamily\textbackslash{}#1}}
-\newcommand\ENV[1]{{\small\ttfamily#1} Environment}
+% braces around next block are needed to stop the list env checking for blank lines
+% and the \aftergroups then for making sure no indentation happens ... as i said
+% urg
%
+ {\BCmd\fbox{\usebox\boxdef}\endBCmd}
+ \aftergroup\@afterindentfalse\aftergroup\@afterheading
+ }
+
+\newskip\BDefaboveskip
+\newskip\BDefbelowskip
+\newskip\BDefinlineskip
+\setlength\BDefaboveskip{0pt plus 2pt}% first-level list topsep
+\setlength\BDefbelowskip{10pt}
+\setlength\BDefinlineskip{6pt}
+
+\newenvironment{BCmd}{
+ \@beginparpenalty-\@lowpenalty
+ \topsep\BDefaboveskip
+ \fboxsep3pt
+ \flushleft}
+ {\@endparpenalty\@M
+ \@topsepadd\BDefbelowskip
+ \endflushleft}
+
+\newenvironment{BCmd*}{
+ \@beginparpenalty\@M
+ \topsep\BDefinlineskip
+ \fboxsep3pt
+ \flushleft}
+ {\@endparpenalty5000
+ \endflushleft}
+
+
+\def\OptArgs{\colorbox{black!20}{\texttt{[Options]}}\kern1pt}
+\def\OptArg{\@ifnextchar*\OptArg@i{\OptArg@ii*}}% star version without braces
+\def\OptArg@i*#1{\colorbox{black!20}{\texttt{#1}}\kern1pt}
+\def\OptArg@ii*#1{\colorbox{black!20}{\texttt{[#1]}}\kern1pt}
+\def\DBS{{\ttfamily\textbackslash\textbackslash}}
+
+
+\makeatother
+
+\newcommand\Larg [1]{{\normalfont\itshape#1\/}}
+\newcommand\Larga[1]{$\langle$\Larg{#1}$\rangle$}% angles
+\newcommand\Largb[1]{\lcb\Larg{#1}\rcb} % curly brace
+\newcommand\Largs[1]{\lsb\Larg{#1}\rsb} % square brackets
+\newcommand\Largr[1]{\lrb\Larg{#1}\rrb} % round brackets
+\newcommand\LBEG[1]{{\normalfont\ttfamily\bs{}begin\lcb#1\rcb}\xLenv{#1}}
+\newcommand\LmBEG[1]{{\normalfont\ttfamily\bs{}begin\lcb#1\rcb}\xLmenv{#1}}
+\newcommand\LEND[1]{{\normalfont\ttfamily\bs{}end\lcb#1\rcb}\xLenv{#1}}
+\newcommand\LmEND[1]{{\normalfont\ttfamily\bs{}end\lcb#1\rcb}\xLmenv{#1}}
+
+\DeclareRobustCommand\bs{{\normalfont\ttfamily\textbackslash}} % \let\bslash=\bs
+\DeclareRobustCommand\lcb{{\normalfont\ttfamily\textbraceleft}}
+\DeclareRobustCommand\rcb{{\normalfont\ttfamily\textbraceright}}
+\DeclareRobustCommand\lsb{{\normalfont\ttfamily[}}
+\DeclareRobustCommand\rsb{{\normalfont\ttfamily]}}
+\DeclareRobustCommand\lrb{{\normalfont\ttfamily(}}
+\DeclareRobustCommand\rrb{{\normalfont\ttfamily)}}
+\DeclareRobustCommand\false{{\ttfamily false}}
+\DeclareRobustCommand\true{{\ttfamily true}}
+
+\let\CMD\Lcs
+\let\ENV\Lenv
+
+\newcommand\Float[1][]{\ifx\relax#1\relax\marginnote{\fbox{float}}\else
+ \marginnote{\fbox{\shortstack{float\\#1}}}\fi
+}
+
+
\begin{document}
-\title{Package \texttt{hvfloat}\\Rotating objects and captions\\ver \hvVersion}
+\title{Package \texttt{hvfloat}\\Rotating and scaling of objects and captions\\ver \hvVersion}
\author{Herbert Voß\thanks{\protect\url{hvoss@tug.org}}}
\date{\today}
\maketitle
-
\begin{abstract}
-This \texttt{hvfloat.sty} defines a macro to place objects and captions of floats in different positions with different rotating angles.
+The package \texttt{hvfloat} defines a macro to place objects and captions of floats in different
+positions with different rotating angles.
-All objects and captions are framed, which is only for demonstration here and has no additional sense.
+All objects and captions are framed on the first pages, which is only for some demonstration here and
+has no additional sense!
+
+To compare the place of the definition of the floating objects in the source and the output a
+marginnote \fbox{float} is set into the margin. This is also only for demonstration!
\end{abstract}
\vfill
@@ -55,7 +180,7 @@ All objects and captions are framed, which is only for demonstration here and ha
objectAngle=120,
capAngle=-210,
objectPos=c
-]{figure}{\protect\fbox{\includegraphics[scale=0.9]{rose}}}{\protect\fbox{What a nice Caption :-)}}{}
+]{figure}{\protect\fbox{\includegraphics[scale=0.9]{rose}}}{\protect\fbox{What a nice Caption :-)}}{fig:title}
\vspace*{\fill}
@@ -71,34 +196,56 @@ All objects and captions are framed, which is only for demonstration here and ha
\clearpage
-\section{The Package Options}
+\section{The package options}
\noindent\begin{tabularx}{\textwidth}{lX}
-\textbf{\small\texttt{fbox}} & The objects and captions are put into a \CMD{fbox} command, like in this documentation. This doesn't make real sense and is only for some demonstration useful.
+\Loption{fbox} & The objects and captions are put into a \Lcs{fbox} command, like in
+this documentation. This doesn't make real sense and is only for some demonstration useful or for locating
+problems if images seems to have too much whitespace.\\
+\Loption{hyperref} & Load package \Lpack{hyperref} and also package \Lpack{hypcap}.
\end{tabularx}
-The length \CMD{belowcaptionskip} is set by \LaTeX{} to 0pt and changed in \texttt{hvfloat} to the same value than \CMD{abovecaptionskip}. This length can be changed to another value in the usual way with \CMD{setlength} or \CMD{addtolength}.
-\section{The Macros}
-The syntax for the \CMD{hvFloat} macro is
-{\small\begin{verbatim}
-\hvFloat[<options>]%
- {<float type>}%
- {<floating object>}%
- [<short caption>]{<long caption>}%
- {<label>}
-\end{verbatim}}
-If the second parameter \texttt{<float type>} is empty, then \texttt{hvfloat} switches by default to a nonfloat (see table \ref{tab:options}) object, which is not imprtant for the user. All other parameters may also be empty and the short caption as second optional parameter missing. This one is as usual the caption for the \verb|listoffigures|.
-There are some more macros defined, more or less for internally use in \texttt{hvfloat}, but they can be used for own purposes.
+The length \Lskip{belowcaptionskip} is set by \LaTeX{} to 0pt and changed in \Lpack{hvfloat} to the
+same value than \Lskip{abovecaptionskip}. This length can be changed to another value in the usual
+way with \CMD{setlength} or \CMD{addtolength}.
-{\small\begin{verbatim}
-\figcaption[<short caption text>]{<caption text>}
-\tabcaption[<short caption text>]{<caption text>}
-\end{verbatim}}
+\section{The Macros and optional arguments}
+The syntax for the macros and \Lcs{setDefaults}, \Lcs{hvSet}, and \CMD{hvFloat} is
+
+\begin{BDef}
+\Lcs{hvset}\Largb{key=value list}\\
+\Lcs{setDefaults}\\
+\Lcs{hvFloat}\OptArgs\Largb{float type}\Largb{floating object}\OptArg{short caption}\Largb{long caption}\Largb{label}
+\end{BDef}
-They are used for the nonfloat option, where these macros write captions in the same way but outside of a float environment. The default caption cannot be used here. It is no problem to use the \CMD{tabcaption} command to place a caption anywhere, like here in an inlined mode: \tabcaption[The Caption without sense ...]{A Caption without any sense and any object}\label{dummy} A label can be put inside the argument or after the command in the usual way, so that a reference to the not existing table \ref{dummy} is no problem.
+
+\Lcs{hvSet} allows the global setting of keywords and \Lcs{setDefaults} sets all keywords to
+its default value as shown in Table~\vref{tab:options}.
+
+If \Lcs{hvFloat} has an empty second parameter \texttt{<float type>}, then \Lcs{hvFloat} switches by default to
+a nonfloat (see table~\ref{tab:options}) object, which is not important for the user. All other parameters
+may also be empty and the short caption as second optional parameter missing. This one is as usual the
+caption for the \Lcs{listoffigures}.
+
+There are some more macros defined, more or less for internally use in \Lpack{hvfloat}, but they can
+be used for own purposes.
+
+
+
+\begin{BDef}
+\Lcs{figcaption}\OptArg{short caption text}\Largb{caption text}\\
+\Lcs{tabcaption}\OptArg{short caption text}\Largb{caption text}
+\end{BDef}
+
+They are used for the \Lkeyword{nonFloat} keyword, where these macros write captions in the same way but outside of
+a float environment. The default caption cannot be used here. It is no problem to use the \CMD{tabcaption}
+command to place a caption anywhere, like here in an inlined mode:
+\tabcaption[The Caption without sense ...]{A Caption without any sense and any object}\label{dummy}
+A label can be put inside the argument or after the command in the usual way, so that a reference to
+the not existing table~\ref{dummy} is no problem.
{\small\begin{verbatim}
[...] It is no problem to use the \verb|\tabcaption| command to
@@ -106,218 +253,534 @@ place a caption anywhere, like here in an inlined mode:
\tabcaption[The Caption without sense ...]{A Caption without any
sense and any object}\label{dummy} A label can be put inside the
argument or after the command in the usual way, so that a
-reference to the not existing table \ref{dummy} is no problem.
+reference to the not existing table~\ref{dummy} is no problem.
\end{verbatim}}
-\clearpage
-\subsection{The Options}
-There are following options:\\[1ex]
-\begin{table}[!htb]
-\caption{The Options for the Macro \texttt{hvFloat}}\label{tab:options}
-\begin{tabularx}{\textwidth}{lcX}\hline
-Option & Default &Description\\\hline
-\texttt{floatPos} & \texttt{htb} & This is the same placement option like the one from the floats.\\
-\texttt{rotAngle} & 0& The value for the angle if both, the object and the caption should be rotated in the same way.\\
-\texttt{capWidth} & 0.8& The width of the caption. Can be "\texttt{w}" for the width of the object or "\texttt{h}" for the height of the object or a scale for \verb|\columnwidth|.\\
+With the macro \Lcs{defhvstyle} one can define a style which can be used instead of
+the individual setting:
-\texttt{capAngle} & 0 & The value for the angle if the caption should be rotated. Counted anti clockwise.\\
+\begin{BDef}
+\Lcs{defhvstyle}\Largb{name}\Largb{setting}
+\end{BDef}
-\texttt{capPos}& \texttt{b}& The position of the caption relative to the object. Possible values are (\textbf{l})eft|(\textbf{b})ottom|(\textbf{t})op|(\textbf{r})ight.\\
+Internally the style is saved in a macro named \verb|\hv@<name>|.
-\texttt{capVPos}& \texttt{c}& This is only important for \texttt{capPos=l|r}. Only in this case the caption can vertically placed at the (\textbf{b})ottom|(\textbf{c})enter|(\textbf{t})op.\\
-\texttt{objectPos} & \texttt{c} & The horizontalplacement of the object relative to the document. Possible values are (\textbf{l})eft|(\textbf{c})enter|(\textbf{r})ight.\\
+%\subsection{The Options}
+There are the following keywords:
-\texttt{objectAngle} & 0 & The value for the angle if the object should be rotated. Counted anti clockwise.\\
+\begin{xltabular}{\textwidth}{l>{\small\ttfamily}cX}
+\caption{The optional keywords for the macro \nxLcs{hvFloat}}\label{tab:options}\\\hline
+\emph Keyword & \emph Default & \emph Description\\\hline
+\Lkeyword{floatPos} & \texttt{htb} & This is the same placement option like the one from the floats.\\
+\Lkeyword{rotAngle} & 0& The value for the angle if both, the object and the caption should be rotated in the same way.\\
-\texttt{floatCapSep} & 5 & The additional width between the object and a left or right placed caption. The default unit is \texttt{pt}.\\
+\Lkeyword{capWidth} & n& The width of the caption. Can be "\texttt{n}" like a natural width,
+ "\texttt{w}" for the width of the object, "\texttt{h}" for the height of the object, or a scale for \verb|\columnwidth|.\\
+
+\Lkeyword{capAngle} & 0 & The value for the angle if the caption should be rotated. Counted anti clockwise.\\
+
+\Lkeyword{capPos} & b& The position of the caption relative to the object. Possible values
+ are (\textbf{l})eft|(\textbf{b})ottom|(\textbf{t})op|(\textbf{r})ight|(\textbf{e})ven|o(\textbf{d})d. The
+ last two are only valid for the option \texttt{fullpage}.\\
+
+\Lkeyword{capVPos}& c& This is only important for \texttt{capPos=l|r}. Only in this case the
+ caption can vertically placed at the (\textbf{b})ottom|(\textbf{c})enter|(\textbf{t})op.\\
+
+\Lkeyword{objectPos} & c & The horizontalplacement of the object relative to the document. Possible values are (\textbf{l})eft|(\textbf{c})enter|(\textbf{r})ight.\\
+
+\Lkeyword{objectAngle} & 0 & The value for the angle if the object should be rotated. Counted anti clockwise.\\
+
+\Lkeyword{floatCapSep} & 5 & The additional width between the object and a left or right placed caption. The default unit is \texttt{pt}.\\
+
+\Lkeyword{fullpage} & false & Put the caption on the bottom of the preceding or following page and the object alone a page.\\
+
+\Lkeyword{separatorLine} & true & Put a line with a predefined width of 0.4pt between
+ the text and the caption. Only valid for the keyword \Lkeyword{fullpage}.\\
+
+\Lkeyword{useOBox} & false & Instead of passing the object as parameter to the \texttt{hvFloat}, the contents maybe saved in the box \texttt{\textbackslash hvOBox} With \texttt{useOBox=true} the contents of this box will be used.\\
+
+\Lkeyword{nonFloat} & false & The object isn't put in a floating environment. It is printed as standard text with an additional caption. The float counters are increased as usual and can be referenced.\\
+
+\Lkeyword{wide} & false & The float can use \verb|\textwidth+\marginparwidth| as horizontal width.\\
+
+\Lkeyword{objectFrame} & false & put a frame with no separation around the float object.\\
+
+\Lkeyword{style} & --- & Use a defined style\\
+\hline
+\end{xltabular}
-\texttt{useOBox} & \texttt{false} & Instead of passing the object as parameter to the \texttt{hvFloat}, the contents maybe saved in the box \texttt{\textbackslash hvOBox} With \texttt{useOBox=true} the contents of this box will be used.\\
-\texttt{nonFloat} & \texttt{false} & The object isn't put in a floating environment. It is printed as standard text with an additional caption. The float counters are increased as usual and can be referenced.
-\\\hline
-\end{tabularx}
-\end{table}
-\section{The Default Use of Floating Environments}
-In this case there is no essential difference to the well known \texttt{figure} or \texttt{table} environment, f.ex.:
+\section{The default use of floating environments}
+In this case there is no essential difference to the well known \Lenv{figure}
+or \Lenv{table} environment, f.ex.:
-{\small\begin{verbatim}
+
+\small\begin{verbatim}
\begin{figure}
... object ...
\caption{...}% caption below the object
\end{figure}
-\end{verbatim}}
+\end{verbatim}
-\hvFloat{figure}{\includegraphics{rose}}{Without any Options (only the \texttt{fbox} package option)}{fig:0}
+\normalsize
+
+\hvFloat{figure}{\includegraphics{rose}}{Without any keywords (only the \texttt{fbox} package option)}{fig:0}
Code for figure \ref{fig:0}:
\begin{lstlisting}
-\hvFloat{figure}{\includegraphics{rose}}{Without any Options (only the \texttt{fbox} package option)}{fig:0}
+\hvFloat{figure}{\includegraphics{rose}}{Without any keywords (only the \texttt{fbox} package option)}{fig:0}
\end{lstlisting}
-
-\hvFloat[capPos=t]{figure}{%
- \begin{tabularx}{\textwidth}{l|l|X}
- Name & Type & Description\\\hline
- \texttt{hvFloat} & command & places object and caption in different ways\\
- \texttt{hvFloatEnv} & environment & places object and caption exactly Here\\
- \texttt{figcaption} & command & writes a figure caption in a non floating environment\\
- \texttt{tabcaption} & command & writes a table caption in a non floating environment\\
- \texttt{setDefaults} & command & sets all options to the defaults
- \end{tabularx}%
-}{With the only Option \texttt{capPos=t} to place the caption on top of the table, which is often the default}{tab:0}
+\Float
+\hvFloat[capPos=t]{table}{%
+\begin{tabularx}{\textwidth}{l|l|X}
+ \rmfamily Name & Type & Description\\\hline
+ \CMD{hvFloat} & command & places object and caption in different ways\\
+ \Lenv{hvFloatEnv} & environment & places object and caption exactly Here\\
+ \CMD{figcaption} & command & writes a figure caption in a non floating environment\\
+ \CMD{tabcaption} & command & writes a table caption in a non floating environment\\
+ \CMD{setDefaults} & command & sets all options to the defaults\\
+ \CMD{defhvstyle} & command & define a user style
+\end{tabularx}%
+}{With the only Option \texttt{capPos=t} to place the caption on top of the table, which is often the default.}{tab:0}
Code for table \ref{tab:0}:
-\begin{lstlisting}[xrightmargin=-8em,xleftmargin=-3em]
-\hvFloat[capPos=t]{figure}{%
- \begin{tabularx}{\textwidth}{l|l|X}
- Name & Type & Description\\\hline
- \CMD{hvFloat} & command & places object and caption in different ways\\
- \texttt{hvFloatEnv} & environment & places object and caption exactly Here\\
- \CMD{figcaption} & command & writes a figure caption in a non floating environment\\
- \CMD{tabcaption} & command & writes a table caption in a non floating environment\\
- \CMD{setDefaults} & command & sets all options to the defaults
- \end{tabularx}%
-}{With the only Option \texttt{capPos=t} to place the caption on top of the table, which is often the default}{tab:0}
-\end{lstlisting}
-
-See section \ref{sec:tables} for some more informations about tabulars as objects.
-
-\section{Caption Right or Left}
-\hvFloat[%
- floatPos=htb,%
- capWidth=0.5,% of \columnwidth
- capPos=r,%
- capVPos=c,%
- objectPos=c]{figure}{\includegraphics{rose}}%
- [Caption beside object and vertically centered]{%
- Caption vertically centered right beside the float with a caption width of \texttt{0.5\textbackslash columnwidth} and \texttt{floatcapsep=5pt} (the default)}{fig:1}
+\begin{lstlisting}
+\hvFloat[capPos=t]{table}{%
+\begin{tabularx}{\textwidth}{>{\ttfamily}l|l|X}
+ \rmfamily Name & Type & Description\\\hline
+ \CMD{hvFloat} & command & places object and caption in different ways\\
+ hvFloatEnv & environment & places object and caption exactly Here\\
+ \CMD{figcaption} & command & writes a figure caption in a non floating environment\\
+ \CMD{tabcaption} & command & writes a table caption in a non floating environment\\
+ \CMD{setDefaults} & command & sets all options to the defaults\\
+ \CMD{defhvstyle} & command & define a user style
+\end{tabularx}}%
+{With the only Option \texttt{capPos=t} to place the caption on top of the table, which is often the default.}%
+{tab:0}
+\end{lstlisting}
+
+See section~\ref{sec:tables} for some more informations about tabulars as objects.
+
+
+
+\section{Caption width}
+%\Lkeyword{capWidth} & 0.8& The width of the caption.
+%Can be "\texttt{w}" for the width of the object or
+%"\texttt{h}" for the height of the object
+%or a scale for \verb|\columnwidth|.\\
+\subsection{Default -- natural width}
+
+The default setting is the natural width of a paragraph with respect to the current linewidth or columnwidth
+for a caption below or above an object. It behaves in the same way as a caption set by one of the default
+floating environments like \Lenv{figure} or \Lenv{table}:
+
+
+\begin{lstlisting}
+\hvFloat[floatPos=!htb]{figure}{\includegraphics{rose}}%
+ {Default caption width setting, which is the natural width with respect to the current linewidth.}{fig:width0}
+\end{lstlisting}
+
+\Float
+\hvFloat[floatPos=!htb]{figure}{\includegraphics{rose}}%
+ {Default caption width setting, which is the natural width with respect to the current linewidth.}{fig:width0}
+
+
+For\marginnote{!!} the following examples the package option \texttt{fbox} is disabled. All
+frames are now set with the macro \Lcs{frame} or the optional keyword \Lkeyword{objectFrame}.
+
+
+
+For a caption beside an object, the \emph{natural} caption width (without the optional argument \Lkeyword{wide})
+is given by the current linewidth
+minus the width of the object and the space between object and caption, which is set by
+\Lkeyword{floatCapSep} (see Table~\vref{tab:options}).
+
+\makeatletter
+\hv@fboxfalse
+\makeatother
+
+\begin{lstlisting}
+\hvFloat[floatPos=!htb,capPos=r,objectFrame]{figure}{\includegraphics[scale=1.5]{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:width1}
+\end{lstlisting}
+
+\Float
+\hvFloat[floatPos=!htb,capPos=r,objectFrame]{figure}{\includegraphics[scale=1.5]{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:width1}
+
+
+\subsection{Relative linewidth}
+
+With \Lkeyword{capWidth}\texttt{=<number>} the caption width is set to \texttt{<number>}\Ldim{columnwidth}.
+For captions at the bottom or on top of objects the setting is not checked if \texttt{<number>}
+is greater than 1.
+
+% If the given scale (0.8 in the
+%following example) leads to a
+%greater caption width than this maximal caption width, it will automatically set to the maximal width:
+
+\begin{lstlisting}
+\hvFloat[floatPos=!htb,capWidth=0.9]{figure}{\includegraphics{rose}}%
+ {Caption below with a width of 0.9 of the current line width (column width), which is
+ in this special case \the\linewidth. Divide it by 28.82 to get cm.}{fig:width2}
+\end{lstlisting}
+
+\Float
+\hvFloat[floatPos=!htb,capWidth=0.9]{figure}{\includegraphics{rose}}%
+ {Caption below with a width of 0.9 of the current line width (column width), which is
+ in this special case \the\linewidth. Divide it by 28.82 to get cm.}{fig:width2}
+
+
+
+If such a value like 0.9\Ldim{linewidth} is used for a caption beside an object, then
+the macro does a test if the space beside the object is less equal the defined caption width.
+If not then the width is set to the possible value between object and margin:
+
+
+
+\begin{lstlisting}
+\hvFloat[floatPos=!htb,capPos=r,capWidth=0.9]{figure}{\includegraphics[scale=1.5]{rose}}%
+ {Caption right beside with a width setting of \texttt{0.9\textbackslash linewidth}
+ which is too big for this example and therefore corrected by the macro to the maximal width.}{fig:width3}
+\end{lstlisting}
+
+\Float
+\hvFloat[floatPos=!htb,capPos=r,capWidth=0.9]{figure}{\includegraphics[scale=1.5]{rose}}%
+ {Caption right beside with a width setting of \texttt{0.9\textbackslash linewidth}
+ which is too big for this example and therefore corrected by the macro to the maximal width.}{fig:width3}
+
+
+\subsection{Identical object and caption width}
+
+With \Lkeyset{capWidth=w} the caption width is like the object width which makes only
+real sense if you have a lot of identical images with respect to its widths.
+
+\begin{lstlisting}
+\hvFloat[floatPos=!htb,capWidth=w]{figure}{\includegraphics[width=0.5\linewidth]{CTAN}}%
+ {Caption below with a width of the given object which may be a problem
+ if it is a very small object.}{fig:width4}
+\end{lstlisting}
+
+\Float
+\hvFloat[floatPos=!htb,capWidth=w]{figure}{\includegraphics[width=0.5\linewidth]{CTAN}}%
+ {Caption below with a width of the given object which may be a problem
+ if it is a very small object.}{fig:width4}
+
+
+\subsection{caption width to height of the object}
+
+With \Lkeyset{capWidth=h} the caption width is like the object height which makes only
+real sense if you want to put a rotated caption beside the object.
+
+\begin{lstlisting}
+\hvFloat[floatPos=!htb,capPos=r,capWidth=h,capAngle=90,objectFrame]{figure}{\includegraphics{rose}}%
+ {Caption beside with a width of the given object height which may be a problem
+ if it is a very small object.}{fig:width5}
+\end{lstlisting}
+
+\hvFloat[floatPos=!htb,capPos=r,capWidth=h,capAngle=90,objectFrame]{figure}{\includegraphics{rose}}%
+ {Caption beside with a width of the given object height which may be a problem
+ if it is a very small object.}{fig:width5}
+
+
+
+\section{Caption right or left of the object}
+\subsection{Caption right with specific length}
Code for figure \ref{fig:1}:
\begin{lstlisting}
+\hvFloat%
+ [floatPos=htb,
+ capWidth=0.5,% of \columnwidth
+ capPos=r,
+ objectFrame,
+ objectPos=c]{figure}{\includegraphics{rose}}%
+ [Caption beside object and vertically centered]%
+ {Caption vertically centered right beside the float with a caption width of
+ \texttt{0.5\textbackslash columnwidth} and \texttt{floatcapsep=5pt} (the default)}{fig:1}
+\end{lstlisting}
+
+\Float[capPos=r]
+\hvFloat%
+ [floatPos=htb,
+ capWidth=0.5,% of \columnwidth
+ capPos=r,
+ objectFrame,
+ objectPos=c]{figure}{\includegraphics{rose}}%
+ [Caption beside object and vertically centered]%
+ {Caption vertically centered right beside the float with a caption width of
+ \texttt{0.5\textbackslash columnwidth} and \texttt{floatcapsep=5pt} (the default)}{fig:1}
+
+
+\subsection{Caption left and rotated}
+
+Code for figure \ref{fig:2}:
+\begin{lstlisting}
+\hvFloat%
+ [floatPos=htb,
+ capWidth=h,% of \columnwidth
+ capPos=l,
+ capAngle=90,
+ objectFrame
+ ]{figure}{\includegraphics{rose}}%
+ [Centered Caption beside Object]%
+ {Caption vertically centered left beside the float with a caption width
+ of \texttt{capWidth=h}, which is the height of the object.}{fig:2}
+\end{lstlisting}
+
+\Float[capPos=l]
+\hvFloat%
+ [floatPos=htb,
+ capWidth=h,% of \columnwidth
+ capPos=l,
+ capAngle=90,
+ objectFrame
+ ]{figure}{\includegraphics{rose}}%
+ [Centered Caption beside Object]%
+ {Caption vertically centered left beside the float with a caption width
+ of \texttt{capWidth=h}, which is the height of the object.}{fig:2}
+
+It is no problem to rotate the object, too. But with a different angle value than for the caption.
+Do not ask for the sense, it is only a demonstration of what is possible \ldots\ The object (image)
+is rotated by $-30$ degrees with the macro \Lcs{rotatebox}. Without any definition the caption will be
+placed vertically centered to the object. Important for the height of the object is the surrounding
+orthogonal rectangle.
+
+
+\blindtext
+
+Code for figure \ref{fig:3}:
+\begin{lstlisting}
\hvFloat[%
- floatPos=htb,%
- capWidth=0.5,% of \columnwidth
- capPos=r,%
- capVPos=c,%
- objectPos=c]{figure}{\includegraphics{rose}}%
- [Caption beside object and vertically centered]{%
- Caption vertically centered right beside the float with a caption width of \texttt{0.5\textbackslash columnwidth} and \texttt{floatcapsep=5pt} (the default)}{fig:1}
+ capWidth=h,
+ capPos=r,
+ capAngle=180,
+ objectAngle=90,
+ capVPos=c,
+ objectPos=c]{figure}{\frame{\includegraphics{rose}}}%
+ [Centered Caption beside Object]{%
+ {Caption vertically centered right beside the float with a caption width of the height
+ of the image and a rotation of the caption and the object.}{fig:3}
\end{lstlisting}
-\subsection{Caption Right and Rotated}
+\Float
\hvFloat[%
- floatPos=htb,%
capWidth=h,% of \columnwidth
- capPos=r,%
- capAngle=90,%
- capVPos=c,%
+ capPos=r,
+ capAngle=180,
+ objectAngle=90,
+ capVPos=c,
+ objectPos=c]{figure}{\frame{\includegraphics{rose}}}%
+ {Caption vertically centered right beside the float with a caption width of the height of the image and
+ a rotation of the caption and the object.}{fig:3}
+
+
+\section{Caption inner or outer}
+Setting the caption position to \emph{inner} or \emph{outer} makes only sense for a document in \Index{twoside} mode.
+For a oneside document \emph{inner} is the same as \emph{left} and \emph{outer} is
+the same as \emph{right}. We show only the code for the first image with the setting \Lkeyset{capPos=i},
+whereas the second one
+chooses only \Lkeyset{capPos=o}.
+
+
+Code for figure~\ref{fig:20}:
+\begin{lstlisting}
+\hvFloat[capPos=i]{figure}{\includegraphics{rose}}%
+ [Centered Caption on the inner side]{%
+ Caption set with the parameter setting \texttt{capPos=i}, which will be
+ a caption on the right side for an even page and on the left side for
+ an odd page.}{fig:20}
+\end{lstlisting}
+
+\Float[capPos=i]
+\hvFloat[capPos=i]{figure}{\includegraphics{rose}}%
+ [Centered Caption on the inner side]{%
+ Caption set with the parameter setting \texttt{capPos=i}, which will be
+ a caption on the right side for an even page and on the left side for
+ an odd page.}{fig:20}
+
+\blindtext
+\begin{lstlisting}
+\hvFloat[capPos=i]{figure}{\includegraphics{rose}}%
+ [Centered Caption on the inner side]{%
+ Caption set with the parameter setting \texttt{capPos=i}, which will be
+ a caption on the right side for an even page and on the left side for
+ an odd page.}{fig:20b}
+\end{lstlisting}
+
+\Float[capPos=i]
+\hvFloat[capPos=i]{figure}{\includegraphics{rose}}%
+ [Centered Caption on the inner side]{%
+ Caption set with the parameter setting \texttt{capPos=i}, which will be
+ a caption on the right side for an even page and on the left side for
+ an odd page.}{fig:20b}
+
+
+\label{page:1}\checkoddpage
+Now the same Image with \Lkeyset{capPos=o}. The current pagenumber is~\pageref{page:1}, an \ifoddpage odd \else
+even \fi page. We now set a pagebreak at the end of the second image to see if it works with
+\emph{inner}/\emph{outer}.
+
+
+
+\Float
+\hvFloat[%
+ capWidth=0.5,% of \columnwidth
+ capPos=o,
+ capAngle=0,%
+ capVPos=b,%
objectPos=c]{figure}{\includegraphics{rose}}%
[Centered Caption beside Object]{%
- Caption vertically centered right beside the float with a caption width of \texttt{0.5\textbackslash columnwidth} and \texttt{floatcapsep=5pt} (the default)}{fig:2}
+ Caption at the bottom right beside the float with a caption width
+ of \texttt{0.5\textbackslash columnwidth} and and \texttt{capPos=o}.}{fig:21}
-Code for figure \ref{fig:2}:
+We have an \checkoddpage
+\ifoddpage odd \else
+even \fi page, the reason why figure~\ref{fig:20b} has the caption for \emph{inner} on the left side
+and figure~\ref{fig:21} for \emph{outer} on the right side.
+
+
+\blindtext
+
+\label{page:2}
+Code for figure \ref{fig:22}:
\begin{lstlisting}
\hvFloat[%
- floatPos=htb,%
- capWidth=h,% of \columnwidth
- capPos=r,%
- capAngle=90,%
- capVPos=c,%
+ capWidth=0.5,% of \columnwidth
+ capPos=o,% ====> OUTER
+ capAngle=0,
+ capVPos=b,
objectPos=c]{figure}{\includegraphics{rose}}%
[Centered Caption beside Object]{%
- Caption vertically centered right beside the float with a caption width of \texttt{0.5\textbackslash columnwidth} and \texttt{floatcapsep=5pt} (the default)}{fig:2}
+ Caption vertically centered right beside the float with a caption
+ width of \texttt{0.5\textbackslash columnwidth} and \texttt{capPos=o} }{fig:22}
\end{lstlisting}
-It is no problem to rotate the object, too. But with a different angle value than for the caption. Do not ask for the sense, it is only a demonstration of what is possible ... The object (image) is rotated by $-30$ degrees with the \verb|rotatebox| makro.
-
+\Float
\hvFloat[%
- floatPos=htb,%
- capWidth=h,% of \columnwidth
- capPos=r,%
- capAngle=180,%
- objectAngle=-30,%
+ capWidth=0.5,% of \columnwidth
+ capPos=o,
+ capAngle=0,%
capVPos=c,%
- objectPos=c]{figure}{\fbox{\includegraphics{rose}}}
+ objectPos=c]{figure}{\includegraphics{rose}}%
[Centered Caption beside Object]{%
- Caption vertically centered right beside the float with a caption width of the height of the image and \texttt{floatcapsep=5pt} (the default)}{fig:3}
+ Caption vertically centered right beside the float with a caption
+width of \texttt{0.5\textbackslash columnwidth} and \texttt{capPos=o}}{fig:22}
-Code for figure \ref{fig:3}:
-\begin{lstlisting}
+
+\iffalse
+\Float[fig:23]
\hvFloat[%
floatPos=htb,%
- capWidth=h
- capPos=r,%
- capAngle=180,%
- objectAngle=-30,%
+ capWidth=0.5,% of \columnwidth
+ capPos=o,
+ capAngle=0,%
capVPos=c,%
- objectPos=c]{figure}{\fbox{\includegraphics{rose}}}%
+ objectPos=c]{figure}{\includegraphics{rose}}%
[Centered Caption beside Object]{%
- Caption vertically centered right beside the float with a caption width of the height of the image and \texttt{floatcapsep=5pt} (the default)}{fig:3}
-\end{lstlisting}
+ Caption vertically centered right beside the float with a caption width of \texttt{0.5\textbackslash columnwidth}
+ and \texttt{capPos=o}.}{}
+
+
+\fi
+
+We have an \checkoddpage
+\ifoddpage odd \else
+even \fi page, the reason why figure~\ref{fig:20} has the caption for \emph{inner} on the right side
+and figure~\ref{fig:21} for \emph{outer} on the left side.
+
+
\section{Vertical Position of the Caption}
-The caption can be placed beside the object in the psoitions
+The caption can be placed beside the object in the positions
\begin{verbatim}
(c)enter|(b)ottom|(t)op
\end{verbatim}
+The code for figure \ref{fig:4}:
+\begin{lstlisting}
\hvFloat[%
floatPos=htb,%
capWidth=0.25,%
capPos=r,%
capVPos=b,%
-]{figure}{\includegraphics{rose}}{Caption at bottom right beside the float}{fig:4}
+]{figure}{\frame{\includegraphics{rose}}}{Caption at bottom right beside the float}{fig:4}
+\end{lstlisting}
-The code for figure \ref{fig:4}:
-\begin{lstlisting}
+
+\Float
\hvFloat[%
floatPos=htb,%
capWidth=0.25,%
capPos=r,%
capVPos=b,%
-]{figure}{\includegraphics{rose}}{Caption at bottom right beside the float}{fig:4}
+]{figure}{\frame{\includegraphics{rose}}}{Caption at bottom right beside the float}{fig:4}
+
+
+
+The code for figure \ref{fig:5}:
+\begin{lstlisting}
+\hvFloat[%
+ floatPos=htb,
+ capWidth=0.25,
+ capPos=r,
+ capVPos=t,
+]{figure}{\frame{\includegraphics{rose}}}{Caption at top left beside the float}{fig:5}
\end{lstlisting}
+\Float
\hvFloat[%
floatPos=htb,%
capWidth=0.25,%
capPos=l,%
capVPos=t,%
-]{figure}{\includegraphics{rose}}{Caption at top left beside the float}{fig:5}
+]{figure}{\frame{\includegraphics{rose}}}{Caption at top left beside the float}{fig:5}
-The code for figure \ref{fig:5}:
+
+The code for figure \ref{fig:6}:
\begin{lstlisting}
\hvFloat[%
- floatPos=htb,%
- capWidth=0.25,%
- capPos=r,%
- capVPos=t,%
-]{figure}{\includegraphics{rose}}{Caption at top left beside the float}{fig:5}
+ capWidth=0.25,
+ capPos=r,
+ capVPos=c,% the default
+]{figure}{\frame{\includegraphics{rose}}}{Caption centered right beside the float}{fig:6}
\end{lstlisting}
+
+\Float
\hvFloat[%
capWidth=0.25,%
capPos=r,%
capVPos=c,% the default
-]{figure}{\includegraphics{rose}}{Caption centered right beside the float}{fig:6}
+]{figure}{\frame{\includegraphics{rose}}}{Caption centered right beside the float}{fig:6}
-The code for figure \ref{fig:6}:
+
+
+\section{Horizontal Position of the Float}
+
+
+The code for figure \ref{fig:7}:
\begin{lstlisting}
\hvFloat[%
- capWidth=0.25,%
- capPos=r,%
- capVPos=c,% the default
-]{figure}{\includegraphics{rose}}{Caption centered right beside the float}{fig:6}
+ capWidth=0.25,
+ capPos=r,
+ capVPos=t,
+ objectPos=l,
+]{figure}{\includegraphics{rose}}{%
+ Caption at top right beside the float and object position left}{fig:7}
\end{lstlisting}
-\section{Horizontal Position of the Float}
+\Float
\hvFloat[%
capWidth=0.25,%
capPos=r,%
@@ -326,18 +789,21 @@ The code for figure \ref{fig:6}:
]{figure}{\includegraphics{rose}}{%
Caption at top right beside the float and object position left}{fig:7}
-The code for figure \ref{fig:7}:
+
+
+The code for figure \ref{fig:8}:
\begin{lstlisting}
\hvFloat[%
capWidth=0.25,%
- capPos=r,%
+ capPos=l,%
capVPos=t,%
- objectPos=l,%
+ objectPos=r,%
]{figure}{\includegraphics{rose}}{%
- Caption at top right beside the float and object position left}{fig:7}
+ Caption at top leftt beside the float and object position right}{fig:8}
\end{lstlisting}
+\Float
\hvFloat[%
capWidth=0.25,%
capPos=l,%
@@ -346,58 +812,117 @@ The code for figure \ref{fig:7}:
]{figure}{\includegraphics{rose}}{%
Caption at top left beside the float and object position right}{fig:8}
-The code for figure \ref{fig:8}:
+\section{Wide floats}
+
+With the optional argument \Lkeyword{wide} the width of the defined marginpar is
+added to the allowed horizontal width of the float.
+
+The code for figure \ref{fig:70}:
\begin{lstlisting}
+\hvFloat[wide,
+ capWidth=0.5,
+ capPos=r,
+ capVPos=t,
+ objectPos=l,
+]{figure}{\includegraphics[width=0.75\linewidth]{CTAN}}{%
+ Caption at top right beside the float and object position left and
+the option \texttt{wide}.
+ Caption at top right beside the float and object position left and
+ the option \texttt{wide}.}{fig:70}
+\end{lstlisting}
+
+%\Float
\hvFloat[%
- capWidth=0.25,%
- capPos=l,%
+ wide,
+ capPos=r,%
capVPos=t,%
- objectPos=r,%
-]{figure}{\includegraphics{rose}}{%
- Caption at top leftt beside the float and object position right}{fig:8}
+ objectPos=l,%
+]{figure}{\includegraphics[width=0.75\linewidth]{CTAN}}{%
+ Caption at top right beside the float and object position left and
+the option \texttt{wide}.
+ Caption at top right beside the float and object position left and
+ the option \texttt{wide}.}{fig:70}
+
+
+The code for figure \ref{fig:80}:
+\begin{lstlisting}
+\hvFloat[wide,
+ capPos=l,
+ capVPos=t,
+ objectPos=r,
+ ]{figure}{\includegraphics[width=0.75\linewidth]{CTAN}}%
+ {Caption at top left beside the object and object position left and
+ the option \texttt{wide}.}{fig:80}
\end{lstlisting}
+
+%\Float
+\hvFloat[wide,
+ capPos=l,%
+ capVPos=t,%
+]{figure}{\includegraphics[width=0.75\linewidth]{CTAN}}%
+ {Caption at top left beside the object and object position left and
+ the option \texttt{wide}.}{fig:80}
+
+
+For a twosided document it will place the object always in the margin.
+
+
+%\Float
+\hvFloat[wide,
+ capPos=r,
+ capVPos=t,
+]{figure}{\includegraphics[width=0.75\linewidth]{CTAN}}{%
+Caption at top right beside the float and object position right and
+the option \texttt{wide}.}{fig:81}
+
+
\section{Full Page Width in Landscape Mode}
-If you do not want to load the \texttt{lscape} package you can use the \texttt{floatPos=p} option to put the image on an own page and rotated by 90 degrees (figure \ref{fig:9}).
+
+If you do not want to load the package \Lpack{lscape} (or \Lpack{pdflscape}) you can use the \Lkeyset{floatPos=p}
+option to put the image on an own page and rotated by 90 degrees (figure~\ref{fig:9}).
Code for figure \ref{fig:9}:
\begin{lstlisting}
\hvFloat[%
- floatPos=p,%
- capWidth=1,%
- capPos=b,%
- rotAngle=90,%
- objectPos=c%
-]{figure}{\includegraphics[width=0.9\textheight]{bateaux}}{%
+ floatPos=p,
+ capPos=b,
+ rotAngle=90,
+ objectPos=c
+]{figure}{\includegraphics[width=0.9\textheight]{CTAN}}{%
Caption at top right beside the float and object position right}{fig:9}
\end{lstlisting}
-The float can also be put to the left or to the right (above/below in landscape) with the \texttt{objectPos=l} parameter
+The float can also be put to the left or to the right (above/below in landscape)
+with the \Lkeyset{objectPos=l} parameter
+\Float
\hvFloat[%
floatPos=p,%
- capWidth=1,%
- capPos=t,%
+ capPos=b,
rotAngle=90,%
objectPos=c%
-]{figure}{\includegraphics[width=\textheight]{bateaux}}{%
+]{figure}{\includegraphics[width=\textheight]{CTAN}}{%
Caption at top and together with the object rotated}{fig:9}
+\Blindtext
+The code for figure \ref{fig:10}:
+\begin{lstlisting}
\hvFloat[%
- floatPos=p,%
- capWidth=h,%
- capPos=r,%
- objectAngle=90,%
- capAngle=-90,%
- objectPos=l%
-]{figure}{\includegraphics[width=\textheight]{bateaux}}%
+ floatPos=p,
+ capWidth=h,
+ capPos=r,
+ objectAngle=90,
+ capAngle=-90,
+ objectPos=l
+]{figure}{\includegraphics[width=\textheight]{CTAN}}%
[Rotated Caption]{%
Caption right beside the float and object position left. The caption rotated by $-90$ degrees}{fig:10}
+\end{lstlisting}
-The code for figure \ref{fig:10}:
-\begin{lstlisting}
+\Float
\hvFloat[%
floatPos=p,%
capWidth=h,%
@@ -405,30 +930,32 @@ The code for figure \ref{fig:10}:
objectAngle=90,%
capAngle=-90,%
objectPos=l%
-]{figure}{\includegraphics[width=\textheight]{bateaux}}%
+]{figure}{\includegraphics[width=\textheight]{CTAN}}%
[Rotated Caption]{%
Caption right beside the float and object position left. The caption rotated by $-90$ degrees}{fig:10}
-\end{lstlisting}
+\Blindtext
-\section{The \texttt{nonfloat} Option}
-Sometimes it is better to put a "float" in a specific position of the page. This is possible with the \texttt{nonfloat} package and the option \texttt{nonFloat=true}.
+\section{The \Lkeyword{nonFloat} Option}
+Sometimes it is better to put a ``float'' in a specific position of the page. This is possible
+with the \Lpack{nonfloat} package and the keyword \Lkeyword{nonFloat}.
\begin{lstlisting}
\hvFloat[%
- nonFloat=true,%
- capWidth=0.25,%
- capPos=r,%
- capVPos=b,%
- objectPos=c,%
+ nonFloat,
+ capWidth=0.25,
+ capPos=r,
+ capVPos=b,
+ objectPos=c,
]{figure}{\includegraphics{rose}}%
[Nonfloat Captions]{%
Caption of a "nonfloat" Object, using the \texttt{nonfloat} Package}{fig:11}
\end{lstlisting}
+\Float
\hvFloat[%
- nonFloat=true,%
+ nonFloat,%
capWidth=0.25,%
capPos=r,%
capVPos=b,%
@@ -438,63 +965,78 @@ Sometimes it is better to put a "float" in a specific position of the page. This
Caption of a "nonfloat" Object, using the \texttt{nonfloat} Package}{fig:11}
\bigskip
-The image \ref{fig:11} is exactly placed where the \texttt{hvFloat} command appears. There are only commands for \texttt{figure} and \texttt{table} environments:
+The image \ref{fig:11} is exactly placed where the command \Lcs{hvFloat} appears.
+There are only commands for \Lenv{figure} and \Lenv{table} environments:
-\begin{lstlisting}
+\begin{verbatim}
\newcommand{\figcaption}{\def\@captype{figure}\caption}
\newcommand{\tabcaption}{\def\@captype{table}\caption}
-\end{lstlisting}
+\end{verbatim}
+
+But it is no problem, to define more \texttt{xxxcaption} commands to support other with the
+\Lpack{float} package defined new floats.
-But it is no problem, to define more \texttt{xxxcaption} commands to support other with the \texttt{float} package defined new floats.
-\section{Tables as Objects}\label{sec:tables}
-The object has to be passed as an parameter to the \texttt{hvFloat} macro. This is no problem with images but maybe with tables, so it is easier to use the box \texttt{\textbackslash hvOBox} to save the table in this box and pass it then to \texttt{hvFloat} with the \texttt{useOBox} option. For example see table \ref{table:1} and \ref{table:2}:
+
+
+\section{Tabulars as Objects}\label{sec:tables}
+The object has to be passed as an parameter to the \Lcs{hvFloat} macro. This is no
+problem with images but maybe with tables, so it is easier to use the box \Lcs{hvOBox}
+to save the table in this box and pass it then to \Lcs{hvFloat} with the \Lkeyword{useOBox} option.
+For example see table~\ref{table:1} and \ref{table:2}:
\savebox{\hvOBox}{%
-\begin{tabular}{l|l|l}
- Name & Type & Description\\\hline
-\texttt{hvFloat} & command & places object and caption in different ways\\
-\texttt{hvFloatEnv} & environment & places object and caption exactly Here\\
-\texttt{figcaption} & command & writes a figure caption in a non floating environment\\
-\texttt{tabcaption} & command & writes a table caption in a non floating environment\\
-\texttt{setDefaults} & command & sets all options to the defaults
-\end{tabular}
+ \begin{tabular}{>{\small\ttfamily}l|l|l}\hline
+ \rmfamily Name & Type & Description\\\hline
+ \CMD{hvFloat} & command & places object and caption in different ways\\
+ hvFloatEnv & environment & places object and caption exactly Here\\
+ \CMD{figcaption} & command & writes a figure caption in a non floating environment\\
+ \CMD{tabcaption} & command & writes a table caption in a non floating environment\\
+ \CMD{setDefaults} & command & sets all options to the defaults\\\hline
+ \end{tabular}%
}
-
-\begin{lstlisting}[xrightmargin=-8em,xleftmargin=-3em]
-\begin{tabular}{l|l|l}
- Name & Type & Description\\\hline
- \texttt{hvFloat} & command & places object and caption in different ways\\
- \texttt{hvFloatEnv} & environment & places object and caption exactly Here\\
- \texttt{figcaption} & command & writes a figure caption in a non floating environment\\
- \texttt{tabcaption} & command & writes a table caption in a non floating environment\\
- \texttt{setDefaults} & command & sets all options to the defaults
-\end{tabular}
+%[xrightmargin=-8em,xleftmargin=-1em]
+\begin{lstlisting}
+\savebox{\hvOBox}{%
+ \begin{tabular}{>{\small\ttfamily}l|l|l}\hline
+ \rmfamily Name & Type & Description\\\hline
+ \CMD{hvFloat} & command & places object and caption in different ways\\
+ hvFloatEnv & environment & places object and caption exactly Here\\
+ \CMD{figcaption} & command & writes a figure caption in a non floating environment\\
+ \CMD{tabcaption} & command & writes a table caption in a non floating environment\\
+ \CMD{setDefaults} & command & sets all options to the defaults\\\hline
+ \end{tabular}%
}
\end{lstlisting}
The code for table \ref{table:1} and \ref{table:2} is:
-\begin{lstlisting}[xrightmargin=-7em,xleftmargin=-3em]
+
+%[xrightmargin=-7em,xleftmargin=-3em]
+\begin{lstlisting}
\hvFloat[%
- floatPos=!hb,%
- useOBox=true]{table}{}{Demonstration of the \texttt{useOBox} Parameter}{table:1}
+ floatPos=!hb,
+ capPos=t,
+ useOBox=true]{table}{}{Demonstration of the \texttt{useOBox} Parameter}{table:1}
\hvFloat[%
- floatPos=hb,%
- useOBox=true,%
- objectAngle=90,%
- capPos=r,%
- capVPos=t,%
- capWidth=0.3]{table}{}{Demonstration of the \texttt{useOBox} Parameter}{table:2}
+ floatPos=hb,
+ useOBox=true,
+ objectAngle=90,
+ capPos=r,
+ capVPos=t,
+ capWidth=0.3]{table}{}{Demonstration of the \texttt{useOBox} Parameter}{table:2}
\end{lstlisting}
In this case leave the third parameter empty.
+\Float
\hvFloat[%
- floatPos=!hb,%
- useOBox=true]{table}{}{Demonstration of the \texttt{useOBox} Parameter}{table:1}
+ floatPos=!hb,
+ capPos=t,
+ useOBox=true]{table}{}{Demonstration of the \texttt{useOBox} Parameter}{table:1}
+\Float
\hvFloat[%
floatPos=!htb,%
useOBox=true,%
@@ -504,26 +1046,30 @@ In this case leave the third parameter empty.
capWidth=0.3]{table}{}{Demonstration of the \texttt{useOBox} Parameter}{table:2}
-\section{Text and Objects}\label{sec:text}
+\section{Text and objects}\label{sec:text}
-With the \texttt{onlyText} option it is no problem to put some text beside an image without getting the caption titels figue/table. The object still can be a floating one or a nonfloating if the \texttt{nonfloat} is used.
-
-\hvFloat[%
- onlyText=true,%
- capAngle=90,%
- capPos=r,%
- capVPos=t,%
- capWidth=h]{}{\includegraphics{rose}}%
- ["\texttt{onlyText}" Caption]{%
- Demonstration of the \texttt{onlyText} Parameter, which makes it
- possible to put some text beside a floating object without getting
- a starting \texttt{Figure:} or \texttt{Table:}}{fig:text}
+With the \Lkeyword{onlyText} keyword it is no problem to put some text beside an image without
+getting the caption title Figure/Table. The object still can be a floating one or a nonfloating
+if the \Lkeyword{nonfloat} keyword is used.
The code for figure \ref{fig:text}:
-
\begin{lstlisting}
\hvFloat[%
+ onlyText=true,
+ capAngle=90,
+ capPos=r,
+ capVPos=t,
+ capWidth=h]{}{\includegraphics{rose}}%
+ ["\texttt{onlyText}" Caption]{%
+ Demonstration of the \texttt{onlyText} Parameter, which makes it
+ possible to put some text beside a floating object without getting
+ a starting \texttt{Figure:} or \texttt{Table:}}{fig:text}
+\end{lstlisting}
+
+
+\Float
+\hvFloat[%
onlyText=true,%
capAngle=90,%
capPos=r,%
@@ -533,15 +1079,16 @@ The code for figure \ref{fig:text}:
Demonstration of the \texttt{onlyText} Parameter, which makes it
possible to put some text beside a floating object without getting
a starting \texttt{Figure:} or \texttt{Table:}}{fig:text}
-\end{lstlisting}
+
\section{Environment \texttt{hvFloatEnv}}\label{sec:env}
-With the environment \texttt{hvFloat} one can place an object exactly on that position where the
-environment is defined. For captions the use of \CMD{captionof} is recommended:
+With the environment \Lenv{hvFloatEnv} one can place an object exactly on that position where the
+environment is defined. For captions the use of \Lcs{captionof} is recommended:
+\begin{lstlisting}
\begin{hvFloatEnv}
\captionof{table}{A caption for a nice table}
\begin{tabular}{@{} l c r @{}}\hline
@@ -549,8 +1096,8 @@ left & center & right \\
L & C & R \\\hline
\end{tabular}
\end{hvFloatEnv}
+\end{lstlisting}
-\begin{lstlisting}
\begin{hvFloatEnv}
\captionof{table}{A caption for a nice table}
\begin{tabular}{@{} l c r @{}}\hline
@@ -558,9 +1105,9 @@ left & center & right \\
L & C & R \\\hline
\end{tabular}
\end{hvFloatEnv}
-\end{lstlisting}
-The environment has an optional argument for setting the line width which is preset to \CMD{textwidth}.
+
+The environment has an optional argument for setting the line width which is preset to \Ldim{textwidth}.
The object is always centered.
\begin{hvFloatEnv}[0.5\textwidth]
@@ -582,6 +1129,533 @@ L & C & R \\\hline
\end{lstlisting}
+\section{Full page objects in onecolumn mode}
+\subsection{Using the textarea}
+For an image or table which needs the whole space of a page the caption can be
+printed at the bottom of the preceeding or following page. It is possible in
+oneside and twoside mode, nbut makes only real sense in the twoside mode.
+Without any additional argument the caption is set first and the object on the follwing page:
+
+\begin{lstlisting}
+\hvFloat[fullpage]%
+ {figure}%
+ {\includegraphics[fullpage]{frose}}%
+% {\includegraphics[width=\linewidth,height=\textheight,keepaspectratio=false]{rose}}%
+ [A float which needs the complete page width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}%
+ {fig:fullpage0}
+\end{lstlisting}
+
+
+
+\Float
+\hvFloat[fullpage]%
+ {figure}%
+ {\includegraphics[fullpage]{frose}}%
+ [A float which needs the complete page width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}%
+ {fig:fullpage0}
+
+
+Figure~\vref{fig:fullpage0} shows the behaviour if only the optional argument Lkeyword{fullpage}
+is used. With this default setting the caption is always placed \textit{before} the following object. Depending to the
+used documentclass it can be a problem, if the caption should be placed on the first page.
+In such a case use one of the other setting.
+Table~\vref{tab:fullpage} shows the valid optional arguments for a full page floating object.
+
+\begin{table}
+\caption{Valid optional arguments for a full page object.}\label{tab:fullpage}
+\centering
+ \begin{tabularx}{\linewidth}{>{\small\ttfamily}l|>{\small\ttfamily}l|X}\toprule
+ \rmfamily Name & \rmfamily Type & Description\\\midrule
+ fullpage & true|false & places an object on an own page \\
+ capPos & l|r|e|d & caption on l)eft (before object), r)ight (after object), e)ven or od)d page\\
+ separatorLine & length & the length of the separation line between text and caption.
+ With setting 0pt no line is used.\\
+\bottomrule
+ \end{tabularx}%
+\end{table}
+
+
+In the following we use some blind text to show the other setting for full page objects.
+Such text has no meaning here.
+
+%\Blindtext
+\blindtext
+
+\subsubsection{Using \Lkeyset{capPos=r}}
+
+The caption will be printed right which is the same as \textit{after} the full page object.
+
+
+\begin{lstlisting}
+\hvFloat[fullpage, capPos=r]%
+ {figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete page width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}
+ {fig:fullpage1}
+\end{lstlisting}
+
+\Float[capPos=r]
+\hvFloat[fullpage, capPos=r]%
+ {figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete page width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}%
+ {fig:fullpage1}
+
+\Blindtext\Blindtext
+
+
+
+
+\subsubsection{Using \Lkeyset{capPos=e} --- caption on an even page}
+
+The caption will be printed on an even page, the object can appear before
+or after this caption.
+
+
+\begin{lstlisting}
+\hvFloat[fullpage, capPos=e]%
+ {figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete page width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}
+ {fig:fullpage3}
+\end{lstlisting}
+
+\Float[capPos=e]
+\hvFloat[fullpage, capPos=e]%
+ {figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete page width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}%
+ {fig:fullpage3}
+
+\Blindtext
+\Blindtext
+
+
+\subsubsection{Using \Lkeyset{capPos=d} --- caption on an odd page}
+
+The caption will be printed on an odd page, the object can appear before
+or after this caption.
+
+
+\begin{lstlisting}
+\hvFloat[fullpage, capPos=d]%
+ {figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete page width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}
+ {fig:fullpage2}
+\end{lstlisting}
+
+\Float[capPos=d]
+\hvFloat[fullpage, capPos=d]%
+ {figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete page width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}%
+ {fig:fullpage2}
+
+\Blindtext\Blindtext\Blindtext
+
+
+\subsection{Using the paper size}
+
+With the macro \Lcs{IncludeGraphics}, which has the same syntax as the well-known \Lcs{includegraphics},
+the width and height of the object are set to the paper dimensions \Ldim{paperwidth} and
+\Ldim{paperheight}.
+
+
+
+\Blindtext
+
+\Float[capPos=d]
+\hvFloat[fullpage, capPos=d]{figure}%
+ {\IncludeGraphics{frose}}%
+ [A float which needs the complete paper width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}%
+ {fig:fullpage4}
+
+
+\Blindtext
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\twocolumn[\section{Full page objects in twocolumn mode}]
+
+The setting \Lkeyset{capPos=e} (even) or \Lkeyset{capPos=d} (odd) page for
+a document in twocolumn mode makes no real sense. For a twosided document a
+setting like \Lkeyset{capPos=i} for inner or \Lkeyset{capPos=o} for outer
+margin makes more sense.
+
+
+
+\subsection{Using the textarea}
+For an image or table which needs the whole space of a page the caption can be
+printed at the bottom of the preceeding or following page. It is possible in
+oneside and twoside mode, nbut makes only real sense in the twoside mode.
+Without any additional argument the caption is set first and the object on the follwing page:
+
+\begin{lstlisting}
+\hvFloat[fullpage]{figure}%
+ {\includegraphics[width=\columnwidth,height=0.9\textheight]{frose}}%
+ [A float which needs the complete column width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next column.
+ This is always the right column on an even or odd page. And some more
+ text whch has no real meaning because it fills only the space for a long
+ caption.}%
+ {fig:fullpage0-2}
+\end{lstlisting}
+
+
+
+\Float[default]
+\hvFloat[fullpage]{figure}%
+ {\includegraphics[width=\columnwidth,height=0.9\textheight]{frose}}%
+ [A float which needs the complete column width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next column.
+ This is always the right column on an even or odd page. And some more
+ text whch has no real meaning because it fills only the space for a long
+ caption.}%
+ {fig:fullpage0-2}
+
+
+
+
+Figure~\vref{fig:fullpage0-2} shows the behaviour if only the optional argument \Lkeyword{fullpage}
+is used. With this default setting the caption is always placed \textit{before} the following object. Depending to the
+used documentclass it can be a problem, if the caption should be placed on the first page.
+In such a case use one of the other setting.
+Table~\vref{tab:fullpage} shows the valid optional arguments for a full page floating object.
+In the following we use some blind text to show the other setting for full page objects.
+Such text has no meaning here.
+
+\Blindtext
+
+\begin{lstlisting}
+\hvFloat[fullpage]{figure}%
+ {\includegraphics[fullpage]{frose}}%
+ [A second float which needs the complete column width and height.]%
+ {A Caption of a second ``fullpage'' object, which follows on the next column.
+ This is always the right column on an even or odd page. And some more
+ text whch has no real meaning because it fills only the space for a long
+ caption.}%
+ {fig:fullpage0-222}
+\end{lstlisting}
+
+
+
+\Float[default]
+\hvFloat[fullpage]{figure}%
+ {\includegraphics[fullpage]{frose}}%
+ [A second float which needs the complete column width and height.]%
+ {A Caption of a second ``fullpage'' object, which follows on the next column.
+ This is always the right column on an even or odd page. And some more
+ text whch has no real meaning because it fills only the space for a long
+ caption.}%
+ {fig:fullpage0-222}
+
+\Blindtext
+
+\subsubsection{Using \Lkeyset{capPos=r}}
+
+The caption will be printed right which is the same as \textit{after} the full page object.
+
+\begin{lstlisting}
+\hvFloat[fullpage, capPos=r]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete column width and height.]%
+ {A Caption of a ``fullpage'' object, which is on the left column.
+ This is always the right column on an even or odd page. And some more
+ text whch has no real meaning because it fills only the space for a long
+ caption.}%
+ {fig:fullpage1-2}
+\end{lstlisting}
+
+\Float[capPos=r]
+\hvFloat[fullpage, capPos=r]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete column width and height.]%
+ {A Caption of a ``fullpage'' object, which is on the left column.
+ This is always the right column on an even or odd page. And some more
+ text whch has no real meaning because it fills only the space for a long
+ caption.}%
+ {fig:fullpage1-2}
+
+\Blindtext
+
+\begin{lstlisting}
+\hvFloat[fullpage, capPos=r]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete column width and height.]%
+ {A Caption of a ``fullpage'' object, which is on the left column.
+ This is always the right column on an even or odd page. And some more
+ text whch has no real meaning because it fills only the space for a long
+ caption.}%
+ {fig:fullpage1-2b}
+\end{lstlisting}
+
+\Float[capPos=r]
+\hvFloat[fullpage, capPos=r]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete column width and height.]%
+ {A Caption of a ``fullpage'' object, which is on the left column.
+ This is always the right column on an even or odd page. And some more
+ text whch has no real meaning because it fills only the space for a long
+ caption.}%
+ {fig:fullpage1-2b}
+
+\Blindtext
+
+
+
+\subsubsection{Using \Lkeyset{capPos=i} --- caption in the inner column}
+
+The caption will be printed in the right column for an even page and
+in the left column for an odd page.
+
+
+\begin{lstlisting}
+\hvFloat[fullpage,capPos=i]{figure}{\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete column width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the left or right column.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}{fig:fullpage3-2}
+\end{lstlisting}
+
+\Float[capPos=i]
+\hvFloat[fullpage,capPos=i]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete column width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the left or
+ right column.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}{fig:fullpage3-2}
+
+\Blindtext
+\blindtext
+
+\begin{lstlisting}
+\hvFloat[fullpage, capPos=i]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A second float which needs the complete column width and height.]%
+ {A Caption of a second ``fullpage'' object, which follows on the left or right column.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}{fig:fullpage3-22}
+\end{lstlisting}
+
+\Float[capPos=i]
+\hvFloat[fullpage,capPos=i]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A second float which needs the complete column width and height.]%
+ {A Caption of a second ``fullpage'' object, which follows on the left or right column.
+ This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}{fig:fullpage3-22}
+
+\Blindtext
+
+\subsubsection{Using \Lkeyset{capPos=o} --- caption on the outer column}
+
+The caption will be printed on the left column an odd page, the object can appear before
+or after this caption.
+
+
+
+
+
+\begin{lstlisting}
+\hvFloat[fullpage, capPos=o]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete page width and height with \texttt{capPos=o}.]%
+ {A Caption of a ``fullpage'' object, which has the caption position in the
+ outer page. This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}{fig:fullpage2-2a}
+\end{lstlisting}
+
+\Float[capPos=o]
+\hvFloat[fullpage, capPos=o]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [A float which needs the complete page width and height with \texttt{capPos=o}.]%
+ {A Caption of a ``fullpage'' object, which has the caption position in the
+ outer page. This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}{fig:fullpage2-2a}
+
+\Blindtext
+
+\begin{verbatim}
+\hvFloat[fullpage, capPos=o]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [Again a float which needs the complete page width and height with \texttt{capPos=o}.]%
+ {Again a caption of a ``fullpage'' object, which has the caption position in the
+ outer page. This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}{fig:22a}
+\end{verbatim}
+
+\Float[capPos=o]
+\hvFloat[fullpage, capPos=o]{figure}%
+ {\includegraphics[fullpage]{rose}}%
+ [Again a float which needs the complete page width and height with \texttt{capPos=o}.]%
+ {Again a caption of a ``fullpage'' object, which has the caption position in the
+ outer page. This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}{fig:22a}
+
+\Blindtext
+\Blindtext
+
+\subsection{Using full page in twocolumn mode}
+
+With the star version of \Lcs{hvfloat} The object ist placed over both columns, the whole page.
+In such a case the only useful caption position is \Lkeyset{capPos=i} for \emph{inner}.
+
+
+\begin{lstlisting}
+\hvFloat*[fullpage, capPos=o]{figure}%
+ {\includegraphics[FullPage]{rose}}%
+ [Again a float which needs the complete page width and height with \texttt{capPos=o}.]%
+ {Again a caption of a ``fullpage'' object, which has the caption position in the
+ outer page. This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}{fig:two}
+\end{lstlisting}
+
+\Float[capPos=o]
+\hvFloat*[fullpage, capPos=o]{figure}%
+ {\includegraphics[FullPage]{rose}}%
+ [Again a float which needs the complete page width and height with \texttt{capPos=o}.]%
+ {Again a caption of a ``fullpage'' object, which has the caption position in the
+ outer page. This can be an even or odd page. And some more text whch has no
+ real meaning because it fills only the space for a long caption.}{fig:two}
+
+\Blindtext
+\Blindtext
+\blindtext
+
+
+
+\onecolumn
+
+
+
+\subsection{Using the paper size}
+
+With the macro \Lcs{IncludeGraphics} (two uppercase letters!), which has the same syntax as the well-known \Lcs{includegraphics},
+the width and height of the object are set to the paper dimensions \Ldim{paperwidth} and
+\Ldim{paperheight}.
+
+
+\begin{lstlisting}
+\hvFloat[fullpage]{figure}%
+ {\IncludeGraphics{frose}}%
+ [A float which needs the complete paper width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. The object uses the complete paper dimensions}%
+ {fig:paper}
+\end{lstlisting}
+
+\hvFloat[fullpage]{figure}%
+ {\IncludeGraphics{frose}}%
+ [A float which needs the complete paper width and height.]%
+ {A Caption of a ``fullpage'' object, which follows on the next page.
+ This can be an even or odd page. The object uses the complete paper dimensions}%
+ {fig:paper}
+
+
+\Blindtext
+
+
+
+\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).
+%With loading package \texttt{hypcap}
+With the command \CMD{pageref} one can have a reference to the page number of a caption. For the
+\Lkeyword{fullpage} option this can be the wrong page if someone wants a refence to the page where
+the object is set. Let's assume that we use something like
+
+\begin{verbatim}
+\hvFloat[fullpage]{figure}{\includegraphics{rose}}{A Caption}{fig:demo}
+\end{verbatim}
+
+The label \texttt{fig:demo} is used for the \emph{image} and not for the caption! Internally another label
+called \texttt{fig:demo-cap} is set on the caption page which can be before or
+behind the opject (depending to the optional argument of \Lkeyword{capPos}).
+For example:
+
+\begin{verbatim}
+The caption of figure~\ref{fig:fullpage0-cap} is on page~\pageref{fig:fullpage0-cap}, but
+the image itself is on page~\pageref{fig:fullpage0}.
+\end{verbatim}
+
+The caption of figure~\ref{fig:fullpage0-cap} is on page~\pageref{fig:fullpage0-cap}, but
+the image itself is on page~\pageref{fig:fullpage0}.
+
+Whith the package \Lpack{varioref} one can % an additional
+%command \Lcs{fltref} is defined which uses a combination of \CMD{ref} and \CMD{vpageref}
+get something like: see figure~\vref{fig:fullpage2}, which uses a correct page number
+of the floatinmg object and not the caption page number which is~\vpageref{fig:fullpage2-cap}.
+
+
+\begin{verbatim}
+Whith the package \Lpack{varioref} one can % an additional
+get something like: see figure~\vref{fig:fullpage2}, which uses a correct page number
+of the floatinmg object and not the caption page number which is~\vpageref{fig:fullpage2-cap}.
+\end{verbatim}
+
+
+
+
+\section{Defining a style}
+
+With \Lcs{defhvstyle} one can define a special style to get rid of the individual setting:
+
+\begin{BDef}
+\Lcs{defhvstyle}\Largb{name}\Largb{setting}
+\end{BDef}
+
+For example:
+\begin{verbatim}
+\defhvstyle{RightCaption}{floatPos=htb, capWidth=0.5, capPos=r, capVPos=b, objectPos=c}
+\end{verbatim}
+
+
+\begin{lstlisting}
+\hvFloat[style=RightCaption]{figure}{\includegraphics{rose}}%
+ {Caption vertically centered right beside the float with a caption width of
+ \texttt{0.5\textbackslash columnwidth}.}{fig:style}
+\end{lstlisting}
+
+\defhvstyle{RightCaption}{floatPos=htb, capWidth=0.5, capPos=r, capVPos=b, objectPos=c}
+
+
+\hvFloat[style=RightCaption]{figure}{\includegraphics{rose}}%
+ {Caption at bottom right beside the float with a caption width of
+ \texttt{0.5\textbackslash columnwidth}.}{fig:style}
+
+
+
\section{Global float setting}
Instead of writing the following sequence into the preamble:
@@ -592,7 +1666,7 @@ Instead of writing the following sequence into the preamble:
\makeatother
\end{verbatim}
-you can change the global setting of floats by loading the package \texttt{hvfloat-fps}. It allows
+you can change the global setting of floats by loading the package \Lpack{hvfloat-fps}. It allows
optional package options to set the global placement:
@@ -601,6 +1675,14 @@ optional package options to set the global placement:
\end{verbatim}
+
+\printindex
+
+
+\clearpage
+
+
+
%\appendix
%\section{Problems}
%\begin{itemize}
@@ -608,7 +1690,6 @@ optional package options to set the global placement:
%\end{itemize}
-
\section{The Package Source}
\lstinputlisting[basicstyle=\ttfamily\footnotesize,tabsize=3]{hvfloat.sty}
diff --git a/Master/texmf-dist/tex/latex/hvfloat/hvfloat-fps.sty b/Master/texmf-dist/tex/latex/hvfloat/hvfloat-fps.sty
index dd0218e8322..4ed1187c469 100644
--- a/Master/texmf-dist/tex/latex/hvfloat/hvfloat-fps.sty
+++ b/Master/texmf-dist/tex/latex/hvfloat/hvfloat-fps.sty
@@ -1,3 +1,5 @@
+%% $Id: hvfloat-fps.sty 949 2019-03-09 10:08:31Z herbert $
+%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hvfloat-fps}[2017/09/16 setting float objects]
%%
diff --git a/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty b/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty
index fa901ed58f8..fbcea5ee3e9 100644
--- a/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty
+++ b/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty
@@ -1,5 +1,7 @@
+%% $Id: hvfloat.sty 964 2019-03-14 11:37:36Z herbert $
+%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{hvfloat}[2017/01/28 rotating of floating objects]
+\ProvidesPackage{hvfloat}[2019/02/03 rotating of floating objects]
%%
%% IMPORTANT NOTICE:
%%
@@ -14,20 +16,37 @@
%% DESCRIPTION:
%% `hvfloat' offers rotating of captions and objects for floats
%%
-\def\fileversion{1.2b}
-\def\filedate{2017/12/22}
+\def\fileversion{2.00}
+\def\filedate{2019/03/14}
\message{`hvfloat' v\fileversion, \filedate\space (Herbert Voss)}
%
\newif\ifhv@fbox \hv@fboxfalse
+\newif\ifhv@hyperref \hv@hyperreffalse
\DeclareOption{fbox}{\hv@fboxtrue\setlength{\fboxsep}{1pt}}
+\DeclareOption{hyperref}{\hv@hyperreftrue}
+
\ProcessOptions
+
+\ifhv@hyperref
+ \RequirePackage{hyperref}
+ \RequirePackage{hypcap}
+% \newcommand\fltref[1]{\ref{#1}\vpageref{#1-flt}}%%
+\fi
+\AtBeginDocument{\providecommand\capstart{}}% in no hyperref/hypcap is loaded
%
\RequirePackage{graphicx}
-\RequirePackage{keyval}
+
+
+\RequirePackage{xkeyval}
\RequirePackage{caption}
+\RequirePackage{ifoddpage}
%
+\RequirePackage{afterpage}
+
\newlength\hvObjectWidth
\newlength\hvCapWidth
+\newlength\hvWideWidth
+
\newlength\hvMaxCapWidth
\newsavebox\hvObjectBox
\newsavebox\hvCaptionBox
@@ -36,10 +55,29 @@
\newif\ifhv@useOBox
\newif\ifhv@nonFloat
\newif\ifhv@onlyText
+\newif\ifhv@wide
+\newif\ifhv@fullpage
+\newif\ifhv@FullPage
+\newif\ifhv@capbeside \hv@capbesidefalse
+\newif\ifhv@separatorLine \hv@separatorLinetrue
+\newif\ifhv@objectFrame \hv@objectFramefalse
-\def\hv@figure{figure}
+\def\hv@Top{t}
+\def\hv@Bottom{b}
+\def\hv@Right{r}
+\def\hv@Left{l}
+\def\hv@Center{c}
+\def\hv@Outer{o}
+\def\hv@Inner{i}
+\def\hv@Even{e}
+\def\hv@Odd{d}
+\def\hv@Natural{n}
+\def\hv@Width{w}
+\def\hv@Height{h}
+\def\hv@Zero{0}
%
-\def\hvSet@boolkey#1#2{\csname hv@#2\ifx\relax#1\relax true\else#1\fi\endcsname}
+
+\def\hv@figure{figure}
%
\define@key{hvSet}{floatPos}[htbp]{% LaTeX's position parameters htbp
\def\hvSet@floatPos{#1}%
@@ -47,19 +85,29 @@
\define@key{hvSet}{rotAngle}[0]{% rotates caption AND image together
\def\hvSet@rotAngle{#1}%
}
-\define@key{hvSet}{capWidth}[.8]{% object (w)idth)|object (h)eight|<scale of \columnwidth>
+\define@key{hvSet}{capWidth}[n]{% (n)atural width|object (w)idth)|object (h)eight|<scale of \columnwidth>
\def\hvSet@capWidth{#1}%
}
\define@key{hvSet}{capAngle}[0]{% -360..+360
\def\hvSet@capAngle{#1}%
}
-\define@key{hvSet}{capPos}[b]{% (l)eft|(b)ottom|(t)op|(r)ight
- \def\hvSet@capPos{#1}% it is relativ to the object
+\define@key{hvSet}{capPos}[b]{% (l)eft|(b)ottom|(t)op|(r)ight|(i)nner|(o)uter|(e)ven|o(d)d
+ \def\hvSet@capPos{#1}% it is relativ to the object, (e),(d) only valid for fullpage float
+ \edef\@tempa{#1}%
+ \ifx\hv@Bottom\@tempa
+ \global\hv@capbesidefalse
+ \else
+ \ifx\hv@Top\@tempa
+ \global\hv@capbesidefalse
+ \else
+ \global\hv@capbesidetrue
+ \fi
+ \fi
}
\define@key{hvSet}{capVPos}[c]{% (b)ottom|(c)enter|(t)op
\def\hvSet@capVPos{#1}% it is relativ to the object
}
-\define@key{hvSet}{objectPos}[c]{% (l)eft|(c)enter|(r)ight
+\define@key{hvSet}{objectPos}[c]{% (l)eft|(c)enter|(r)ight|(i)nner|(o)uter
\def\hvSet@objectPos{#1}% it is relativ to the document
}
\define@key{hvSet}{objectAngle}[0]{% -360..+360
@@ -68,67 +116,155 @@
\define@key{hvSet}{floatCapSep}[5]{% a width with the unit pt
\def\hvSet@floatCapSep{#1}%
}
-\define@key{hvSet}{useOBox}[false]{% use of the hvOBox contents
- \lowercase{\hvSet@boolkey{#1}}{useOBox}%
+\define@key{hvSet}{useOBox}[true]{% use of the hvOBox contents
+ \@nameuse{hv@useOBox#1}%
}
-\define@key{hvSet}{nonFloat}[false]{% Do not use float environment
- \lowercase{\hvSet@boolkey{#1}}{nonFloat}%
+\define@key{hvSet}{nonFloat}[true]{% Do not use float environment
+ \@nameuse{hv@nonFloat#1}%
}
\define@key{hvSet}{onlyText}[false]{% Write the caption only as text
- \lowercase{\hvSet@boolkey{#1}}{onlyText}%
+ \@nameuse{hv@onlyText#1}%
+}
+\define@key{hvSet}{wide}[true]{% Write the caption only as text
+ \@nameuse{hv@wide#1}%
+}
+\define@key{hvSet}{fullpage}[true]{% fullpage float with caption on other page
+ \@nameuse{hv@fullpage#1}%
+% \def\hvSet@capWidth{n}%
}
+\define@key{hvSet}{FullPage}[true]{% fullpage float with caption on other page
+ \@nameuse{hv@FullPage#1}%
+% \def\hvSet@capWidth{n}%
+}
+\define@key{hvSet}{separatorLine}[true]{% separator line for caption of a full page float
+ \@nameuse{hv@separatorLine#1}%
+}%
+\define@key{hvSet}{objectFrame}[true]{% a frame around the object with no separation
+ \@nameuse{hv@objectFrame#1}%
+}%
+\define@key{hvSet}{style}{%
+ \@ifundefined{hv@#1}%
+ {\errmessage{Custom style `#1' undefined}}%
+ {\begingroup
+ \edef\x{\endgroup\noexpand\setkeys{hvSet}{\@nameuse{hv@#1}}}\x}% use a defined style
+}
+
+\def\hvset#1{\setkeys{hvSet}{#1}}
%
+\def\defhvstyle#1#2{\@namedef{hv@#1}{#2}}
+%
+
\newcommand{\setDefaults}{%
-\setkeys{hvSet}{%
- floatPos=htbp, rotAngle=0, capWidth=.8, capAngle=0,
+ \hvset{%
+ floatPos=htbp, rotAngle=0, capWidth=n, capAngle=0,
capPos=b, capVPos=c, objectPos=c, objectAngle=0,
floatCapSep=5, useOBox=false, nonFloat=false,
- onlyText=false}%
+ onlyText=false, wide=false, fullpage=false, FullPage=false,
+ separatorLine,objectFrame=false}%
}
%
-\def\hv@Top{t}
-\def\hv@Bottom{b}
-\def\hv@Right{r}
-\def\hv@Left{l}
-\def\hv@Center{c}
-\def\hv@Width{w}
-\def\hv@Height{h}
-\def\hv@Zero{0}
-%
-\newlength{\hvAboveCaptionSkip}
-\newlength{\hvBelowCaptionSkip}
-\setlength{\belowcaptionskip}{\abovecaptionskip}% it is in latex.ltx = 0pt
-\newcommand{\saveCaptionSkip}{%
+\newlength\hvAboveCaptionSkip
+\newlength\hvBelowCaptionSkip
+\newcount\hv@@capPos
+
+\newlength\fboxlinewidth
+\AtBeginDocument{%
+ \setlength\fboxlinewidth{\dimexpr\linewidth-2\fboxrule-2\fboxsep}%
+}
+\setlength\belowcaptionskip{\abovecaptionskip}% it is in latex.ltx = 0pt
+\newcommand\saveCaptionSkip{%
\setlength{\hvAboveCaptionSkip}{\abovecaptionskip}
\setlength{\hvBelowCaptionSkip}{\belowcaptionskip}
\setlength{\abovecaptionskip}{0pt}
\setlength{\belowcaptionskip}{0pt}
}
\newcommand{\restoreCaptionSkip}{%
- \setlength\abovecaptionskip{\hvAboveCaptionSkip}
- \setlength\belowcaptionskip{\hvBelowCaptionSkip}
+ \setlength\abovecaptionskip{\hvAboveCaptionSkip}%
+ \setlength\belowcaptionskip{\hvBelowCaptionSkip}%
}
%
-%
-\newcommand{\figcaption}[2][]{\def\@captype{figure}%
+\newcommand\figcaption[2][]{\def\@captype{figure}%
\ifx\relax#1\relax \caption{#2}\else\caption[#1]{#2}\fi}
-\newcommand{\tabcaption}[2][]{\def\@captype{table}%
+\newcommand\tabcaption[2][]{\def\@captype{table}%
\ifx\relax#1\relax \caption{#2}\else\caption[#1]{#2}\fi}
%
-%
-\def\hvFloat{\@ifnextchar[{\do@hvFloat}{\do@hvFloat[]}}
-\def\do@hvFloat[#1]#2#3{%
- \setDefaults
- \ifx\relax#1\relax\else\setkeys{hvSet}{#1}\fi%
- \gdef\hv@floatType{#2}%
- \ifx\relax#2\relax \setkeys{hvSet}{nonFloat=true}\fi%
- \gdef\hv@floatObject{#3}%
- \@ifnextchar[{\do@@hvFloat}{\do@@hvFloat[]}%
+\newlength\hv@maxImageWidth
+\AtBeginDocument{\hv@maxImageWidth=\columnwidth}
+
+\define@key{Gin}{fullpage}[true]{%
+ \def\Gin@ewidth{\columnwidth}%
+ \def\Gin@eheight{\textheight}%
+ \Gin@boolkey{false}{iso}%
}
-\def\do@@hvFloat[#1]#2#3{%
- \def\hv@shortCap{#1}%
- \def\hv@longCap{#2}%
- \def\hv@label{#3}%
+\define@key{Gin}{FullPage}[true]{%
+ \def\Gin@ewidth{\textwidth}%
+ \def\Gin@eheight{\textheight}%
+ \Gin@boolkey{false}{iso}%
+}
+\newcommand\IncludeGraphics[2][]{%
+ \checkoddpage
+ \vspace*{\the\dimexpr-1in-\voffset+\topskip-\headheight-0.5\baselineskip}%
+ \ifoddpage
+ \hspace*{\dimexpr-\oddsidemargin-\parindent-1in}%
+ \else
+ \hspace*{\dimexpr-\evensidemargin-\parindent-1in}%
+ \fi
+ \includegraphics[#1,width=\paperwidth,height=\paperheight,keepaspectratio=false]{#2}%
+}
+
+\newcommand\put@CaptionBox[1][0]{%
+ \ifcase#1
+ \ifhv@fbox
+ \fbox{\parbox{\wd\hvCaptionBox}{\usebox{\hvCaptionBox}}}%
+ \else
+ \parbox{\wd\hvCaptionBox}{\usebox{\hvCaptionBox}}%
+ \fi
+ \or
+ \ifhv@fbox
+ \fbox{\raisebox{-\height}{\usebox{\hvCaptionBox}}}%
+ \else
+ \raisebox{-\height}{\usebox{\hvCaptionBox}}%
+ \fi
+ \or
+ \ifhv@fbox\fbox{\usebox{\hvCaptionBox}}\else\usebox{\hvCaptionBox}\fi
+ \fi
+}
+
+\newcommand\put@ObjectBox[1][0]{%
+ \ifcase#1
+ \ifhv@fbox
+ \fbox{\parbox{\wd\hvObjectBox}{\usebox{\hvObjectBox}}}%
+ \else
+ \parbox{\wd\hvObjectBox}{\ifhv@objectFrame\frame{\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}%
+ \fi
+ \or
+ \ifhv@fbox
+ \fbox{\usebox{\hvObjectBox}}%
+ \else
+ \ifhv@objectFrame\frame{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi%
+ \fi
+ \fi
+}
+
+\newif\if@hvstar
+
+\def\hvFloat{\@ifnextchar*%
+ {\@hvstartrue
+ \hv@maxImageWidth=\textwidth
+ \hvFloat@i}%
+ {\@hvstarfalse
+ \hv@maxImageWidth=\columnwidth
+ \hvFloat@i*}%
+}
+
+\setDefaults
+
%\newcommand*{\hvFloat}[5][]{%
% [#1}: keyvalues
% #2: type figure | table | ...
@@ -136,12 +272,37 @@
% [#4]: short caption
% #5: caption
% #6: label
-% \setDefaults%
-% \def\@tempa{#1}%
-% \ifx\@tempa\empty\else\setkeys{hvSet}{#1}\fi% set options, only when not empty
+%
+\def\hvFloat@i*{\@ifnextchar[{\do@hvFloat}{\do@hvFloat[]}}
+\def\do@hvFloat[#1]#2#3{%
+ \begingroup
+ \setlength\hvWideWidth{\dimexpr\linewidth+\marginparwidth}%
+ \hv@maxImageWidth=\textwidth
+ \global\hv@capbesidefalse
+ \ifx\relax#1\relax\else\setkeys{hvSet}{#1}\fi
+ \gdef\hv@floatType{#2}%
+ \ifx\relax#2\relax \setkeys{hvSet}{nonFloat=true}\fi
+ \gdef\hv@floatObject{#3}%
+ \@ifnextchar[{\do@@hvFloat}{\do@@hvFloat[]}%
+}
+\def\do@@hvFloat[#1]#2#3{%
+ \gdef\hv@shortCap{#1}%
+ \gdef\hv@longCap{#2}%
+ \gdef\hv@label{#3}%
+ \ifhv@fullpage
+ \def\hvSet@CapWidth{n}% relative value
+ \do@@@@hvFloat% fullpage with caption on other page
+ \else
+ \do@@@hvFloat
+ \fi
+}
+%
+\def\do@@@hvFloat{% no special float page
\def\@tempa{90}%
- \ifx\hvSet@rotAngle\@tempa \setlength{\hvMaxCapWidth}{\textheight}%
- \else \setlength{\hvMaxCapWidth}{\linewidth}%
+ \ifx\hvSet@rotAngle\@tempa
+ \setlength\hvMaxCapWidth{\textheight}%
+ \else
+ \setlength\hvMaxCapWidth{\hvWideWidth}%
\fi
%
% First we save the object in \hvObjectBox
@@ -150,214 +311,383 @@
\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
\else
\savebox{\hvObjectBox}{%
- \rotatebox{\hvSet@objectAngle}{%
- \ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}}%
+ \rotatebox{\hvSet@objectAngle}{%
+ \ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi
+ }%
+ }%
\fi
- \setlength{\hvObjectWidth}{\wd\hvObjectBox}%
+ \setlength\hvObjectWidth{\wd\hvObjectBox}%
%
% Now we save the caption with its defined \hvCapWidth
%
- \ifx\hvSet@capWidth\hv@Width\setlength{\hvCapWidth}{\hvObjectWidth}%
+ \ifx\hvSet@capWidth\hv@Width% captionwidth=objectwidth
+ \setlength\hvCapWidth{\hvObjectWidth}%
\else
- \ifx\hvSet@capWidth\hv@Height\setlength{\hvCapWidth}{\ht\hvObjectBox}%
+ \ifx\hvSet@capWidth\hv@Height% captionwidth=objectheight
+ \setlength\hvCapWidth{\ht\hvObjectBox}%
\else
- \setlength{\hvCapWidth}{\hvObjectWidth}%
- \ifx\hvSet@capPos\hv@Left\addtolength{\hvMaxCapWidth}{-\hvObjectWidth}\fi
- \ifx\hvSet@capPos\hv@Right\addtolength{\hvMaxCapWidth}{-\hvObjectWidth}\fi
- \ifdim\hvSet@capWidth\columnwidth<\hvMaxCapWidth
- \setlength{\hvCapWidth}{\hvSet@capWidth\columnwidth}%
+ \ifx\hvSet@capWidth\hv@Natural% captionwidth=\linewidth-\objectwidth-separation
+ \ifhv@capbeside
+ \ifhv@wide
+ \setlength\hvCapWidth{\the\dimexpr\hvWideWidth-\hvObjectWidth-\hvSet@floatCapSep pt\relax}%
+ \else
+ \setlength\hvCapWidth{\the\dimexpr\columnwidth-\hvObjectWidth-\hvSet@floatCapSep pt\relax}%
+ \fi
+ \else
+ \setlength\hvCapWidth{\columnwidth}%
+ \fi
\else
- \setlength{\hvCapWidth}{\hvMaxCapWidth}%
+ \ifhv@capbeside
+ \ifhv@wide
+ \setlength\hvCapWidth{\hvSet@capWidth\hv@WideWidth}%
+ \setlength\@tempdima{\the\dimexpr\hvWideWidth-\hvObjectWidth-\hvSet@floatCapSep pt\relax}%
+ \else
+ \setlength\hvCapWidth{\hvSet@capWidth\columnwidth}%
+ \setlength\@tempdima{\the\dimexpr\columnwidth-\hvObjectWidth-\hvSet@floatCapSep pt\relax}%
+ \fi
+ \ifdim\hvCapWidth>\@tempdima
+ \setlength\hvCapWidth{\@tempdima}%
+ \fi
+ \else
+ \ifhv@wide
+ \setlength\hvCapWidth{\hvSet@capWidth\hv@WideWidth}%
+ \else
+ \setlength\hvCapWidth{\hvSet@capWidth\columnwidth}%
+ \fi
+ \fi
\fi
- \fi
- \fi
-%
-% now we have the object and the caption with the right
-% rotated angles saved in boxes
-%
- \def\fps@figure{\hvSet@floatPos}%
- \ifhv@nonFloat\begingroup% Start the nonfloat part
- \else \begin{\hv@floatType}% Start the floating environment
- \fi
- \saveCaptionSkip% we put this space ourselve
- \ifx\hvSet@capAngle\hv@Width % need rotation?
- \sbox{\hvCaptionBox}{%
+ \fi
+ \fi
+ \saveCaptionSkip % we put this space ourselve
+ \ifx\hvSet@capAngle\hv@Zero % need rotation?
+ \sbox\hvCaptionBox{% NO rotation
\begin{minipage}[b]{\hvCapWidth}% minipage, to get hyphenation
\ifhv@nonFloat
- \ifhv@onlyText#2
+ \ifhv@onlyText\hv@longCap
\else
\ifx\hv@floatType\hv@figure
- \ifx\relax#1\relax \figcaption{#2}\else\figcaption[#1]{#2}\fi
+ \ifx\relax\hv@shortCap\relax \figcaption{\hv@longCap}\else\figcaption[\hv@shortCap]{\hv@longCap}\fi
\else
- \ifx\relax#1\relax \tabcaption{#2}\else\tabcaption[#1]{#2}\fi
+ \ifx\relax\hv@shortCap\relax \tabcaption{\hv@longCap}\else\tabcaption[\hv@shortCap]{\hv@longCap}\fi
\fi
\fi
\else
- \expandafter\ifx\expandafter\relax\hv@shortCap\relax \caption{#2}\else\caption[#1]{#2}\fi
+ \let\@captype\hv@floatType
+ \expandafter\ifx\expandafter\relax\hv@shortCap\relax \caption{\hv@longCap}\else\caption[\hv@shortCap]{\hv@longCap}\fi
\fi
- \label{#3}%
+ \label{\hv@label}%
\end{minipage}%
}%
\else
- \sbox{\hvCaptionBox}{%
+ \sbox\hvCaptionBox{% Rotation
\rotatebox{\hvSet@capAngle}{%
- \begin{minipage}[b]{\hvCapWidth}% minipage, to get hyphenation
- \ifhv@nonFloat
- \ifhv@onlyText#2
+ \begin{minipage}[b]{\hvCapWidth}% minipage, to get hyphenation
+ \ifhv@nonFloat
+ \ifhv@onlyText\hv@longCap
\else
\ifx\hv@floatType\hv@figure
- \ifx\relax#1\relax \figcaption{#2}\else\figcaption[#1]{#2}\fi
+ \ifx\relax\hv@shortCap\relax \figcaption{\hv@longCap}\else\figcaption[\hv@shortCap]{\hv@longCap}\fi
\else
- \ifx\relax#1\relax \tabcaption{#2}\else\tabcaption[#1]{#2}\fi
+ \ifx\relax\hv@shortCap\relax \tabcaption{\hv@longCap}\else\tabcaption[\hv@shortCap]{\hv@longCap}\fi
\fi
\fi
\else
- \expandafter\ifx\expandafter\relax\hv@shortCap\relax \caption{#2}\else\caption[#1]{#2}\fi
+ \let\@captype\hv@floatType
+ \expandafter\ifx\expandafter\relax\hv@shortCap\relax \caption{\hv@longCap}\else\caption[\hv@shortCap]{\hv@longCap}\fi
\fi
- \label{#3}%
- \end{minipage}%
- }%
- }%
- \fi%
+ \label{\hv@label}%
+ \end{minipage}%
+ }% rotatebox
+ }% \sbox
+ \fi
+%
+% now we have the object and the caption with the right
+% rotated angles saved in different boxes
%%
\restoreCaptionSkip% save old values
- \ifx\hvSet@objectPos\hv@Right\raggedleft%
- \else
- \ifx\hvSet@objectPos\hv@Center
- \ifhv@nonFloat\hspace*{\fill}\else\centering\fi
- \fi
+ \def\fps@figure{\hvSet@floatPos}%
+ \ifhv@nonFloat
+ \begingroup% Start the nonfloat part
+ \checkoddpage
+ \else
+ \begin{\hv@floatType}% Start the floating environment
+ \checkoddpage
+ \fi
+ \ifx\hvSet@objectPos\hv@Right\raggedleft\fi
+ \ifx\hvSet@objectPos\hv@Center
+ \ifhv@nonFloat\hspace*{\fill}\else\centering\fi
+ \fi
+ \ifx\hvSet@objectPos\hv@Outer
+ \ifoddpage\raggedleft\fi
+ \fi
+ \ifx\hvSet@objectPos\hv@Inner
+ \ifoddpage\else\raggedleft\fi
\fi
%
% to rotate object and caption together, we save all in another box
% the caption comes first, if its on the left or the top
+% 0 caption left, inner and odd page, oneside inner
+% 1 caption top
+% 2 caption right, inner and even page, oneside outer
+% 3 caption bottom
%
+ \ifx\hvSet@capPos\hv@Left\hv@@capPos=0\else
+ \ifx\hvSet@capPos\hv@Top\hv@@capPos=1\else
+ \ifx\hvSet@capPos\hv@Right\hv@@capPos=2\else
+ \ifx\hvSet@capPos\hv@Bottom\hv@@capPos=3\else
+ \ifx\hvSet@capPos\hv@Inner
+ \ifoddpageoroneside\hv@@capPos=0\else\hv@@capPos=2\fi
+ \else
+ \ifx\hvSet@capPos\hv@Outer
+ \ifoddpageoroneside\hv@@capPos=2\else\hv@@capPos=0\fi
+ \fi\fi\fi\fi\fi\fi
+%%%%
\savebox{\@tempboxa}{%
- \ifx\hvSet@capPos\hv@Left % caption on left side
- \ifx\hvSet@capVPos\hv@Center
- \ifhv@fbox\fbox{\parbox{\wd\hvCaptionBox}{\usebox{\hvCaptionBox}}}%
- \else \parbox{\wd\hvCaptionBox}{\usebox{\hvCaptionBox}}%
+ \expandafter\ifcase\the\hv@@capPos % 0 is LEFT START \ifcase
+ \ifx\hvSet@capVPos\hv@Center
+ \put@CaptionBox
+ \hspace{\hvSet@floatCapSep pt}% capfloatsep
+ \put@ObjectBox
+ \else
+ \ifx\hvSet@capVPos\hv@Top% caption and object at top aligned
+ \put@CaptionBox[1]
+ \hspace{\hvSet@floatCapSep pt}% capfloatsep
+ \put@ObjectBox[1]
+ \else% caption on bottom
+ \put@CaptionBox[2]
+ \hspace{\hvSet@floatCapSep pt}% capfloatsep
+ \put@ObjectBox[2]
+ \fi
+ \fi% end caption left
+ \or %1 is top
+ \ifdim\wd\hvCaptionBox>\wd\hvObjectBox
+ \begin{minipage}{\wd\hvCaptionBox}%
+ \else
+ \begin{minipage}{\wd\hvObjectBox}%
\fi
- \hspace{\hvSet@floatCapSep pt}% capfloatsep
- \ifhv@fbox\fbox{\parbox{\wd\hvObjectBox}{\usebox{\hvObjectBox}}}%
- \else \parbox{\wd\hvObjectBox}{\usebox{\hvObjectBox}}%
- \fi
- \else
- \ifx\hvSet@capVPos\hv@Top % caption at top
- \ifhv@fbox\fbox{\raisebox{-\height}{\usebox{\hvCaptionBox}}}%
- \else \raisebox{-\height}{\usebox{\hvCaptionBox}}%
+ \centering
+ \ifhv@fbox
+ \fbox{\usebox{\hvCaptionBox}}\\[\hvBelowCaptionSkip]%
+ \fbox{\usebox{\hvObjectBox}}%
+ \else
+ \usebox{\hvCaptionBox}\\[\hvBelowCaptionSkip]%
+ \usebox{\hvObjectBox}%
\fi
- \hspace{\hvSet@floatCapSep pt}% capfloatsep
- \ifhv@fbox\fbox{\raisebox{-\height}{\usebox{\hvObjectBox}}}%
- \else \raisebox{-\height}{\usebox{\hvObjectBox}}%
+ \end{minipage}%
+ \or %2 is right
+ \ifx\hvSet@capVPos\hv@Center
+ \put@ObjectBox
+ \hspace{\hvSet@floatCapSep pt}%
+ \put@CaptionBox
+ \else
+ \ifx\hvSet@capVPos\hv@Top
+ \put@ObjectBox[1]
+ \hspace{\hvSet@floatCapSep pt}% capfloatsep
+ \put@CaptionBox[1]
+ \else
+ \put@ObjectBox[2]
+ \hspace{\hvSet@floatCapSep pt}% capfloatsep
+ \put@CaptionBox[2]
+ \fi
\fi
- \else% caption on bottom
- \ifhv@fbox\fbox{\usebox{\hvCaptionBox}}%
- \else\usebox{\hvCaptionBox}%
- \fi%
- \hspace{\hvSet@floatCapSep pt}%
- \ifhv@fbox\fbox{\usebox{\hvObjectBox}}%
- \else \usebox{\hvObjectBox}%
+ \or %3 bottom
+ \ifdim\wd\hvCaptionBox>\wd\hvObjectBox
+ \begin{minipage}{\wd\hvCaptionBox}%
+ \else
+ \begin{minipage}{\wd\hvObjectBox}%
\fi
- \fi
- \fi
- \else
- \ifx\hvSet@capPos\hv@Top
- \ifdim\wd\hvCaptionBox>\wd\hvObjectBox
- \begin{minipage}{\wd\hvCaptionBox}%
- \else
- \begin{minipage}{\wd\hvObjectBox}%
- \fi
- \centering
- \ifhv@fbox
- \fbox{\usebox{\hvCaptionBox}}\\[\hvBelowCaptionSkip]
- \fbox{\usebox{\hvObjectBox}}%
- \else
- \usebox{\hvCaptionBox}\\[\hvBelowCaptionSkip]
- \usebox{\hvObjectBox}%
- \fi
- \end{minipage}%
- \else
- \ifx\hvSet@capPos\hv@Bottom
- \ifdim\wd\hvCaptionBox>\wd\hvObjectBox
- \begin{minipage}{\wd\hvCaptionBox}
- \else
- \begin{minipage}{\wd\hvObjectBox}
- \fi
- \centering
- \ifhv@fbox
- \fbox{\usebox{\hvObjectBox}}\\[\hvAboveCaptionSkip]
- \fbox{\usebox{\hvCaptionBox}}
- \else
- \usebox{\hvObjectBox}\\[\hvAboveCaptionSkip]
- \usebox{\hvCaptionBox}
- \fi%
- \end{minipage}
- \else% the last option: put the caption on the right
- \ifx\hvSet@capVPos\hv@Center%
- \ifhv@fbox
- \fbox{\parbox{\wd\hvObjectBox}{\usebox{\hvObjectBox}}}
- \else
- \parbox{\wd\hvObjectBox}{\usebox{\hvObjectBox}}
- \fi%
- \hspace{\hvSet@floatCapSep pt}%
- \ifhv@fbox
- \fbox{\parbox{\wd\hvCaptionBox}{\usebox{\hvCaptionBox}}}%
- \else
- \parbox{\wd\hvCaptionBox}{\usebox{\hvCaptionBox}}
- \fi%
- \else%
- \ifx\hvSet@capVPos\hv@Top
- \ifhv@fbox
- \fbox{\raisebox{-\height}{\usebox{\hvObjectBox}}}%
- \else
- \raisebox{-\height}{\usebox{\hvObjectBox}}%
- \fi%
- \hspace{\hvSet@floatCapSep pt}%
- \ifhv@fbox
- \fbox{\raisebox{-\height}{\usebox{\hvCaptionBox}}}%
- \else
- \raisebox{-\height}{\usebox{\hvCaptionBox}}%
- \fi
- \else
- \ifhv@fbox
- \fbox{\usebox{\hvObjectBox}}%
- \else
- \usebox{\hvObjectBox}%
- \fi
- \hspace{\hvSet@floatCapSep pt}%
- \ifhv@fbox
- \fbox{\usebox{\hvCaptionBox}}%
- \else
- \usebox{\hvCaptionBox}%
- \fi%
- \fi%
- \fi
- \fi
- \fi
- \fi
- }% End savebox Object and caption
+ \centering
+ \ifhv@fbox
+ \fbox{\usebox{\hvObjectBox}}\\[\hvAboveCaptionSkip]%
+ \fbox{\usebox{\hvCaptionBox}}%
+ \else
+ \ifhv@objectFrame\frame{\usebox{\hvObjectBox}}\else\usebox{\hvObjectBox}\fi\\[\hvAboveCaptionSkip]%
+ \usebox{\hvCaptionBox}%
+ \fi
+ \end{minipage}
+ \fi% \ifcase\the\hv@@capPos
+ }% End savebox Object and caption
%
% now we rotate the object and caption, if needed
%
- \ifx\hvSet@rotAngle\hv@Zero
- \usebox{\@tempboxa}
- \else
- \rotatebox{\hvSet@rotAngle}{\usebox{\@tempboxa}}
- \fi
- \ifhv@nonFloat
- \ifx\hvSet@objectPos\hv@Center
- \ifhv@nonFloat
- \hspace{\fill}
- \fi
- \fi
- \endgroup% End the nonfloat part
- \else
- \end{\hv@floatType}% End the floating environment
+ \ifhv@wide
+ \ifoddpageoroneside\else\ifoddpage\else\hspace*{-\marginparwidth}\fi\fi% <- for wide and left page
+ \fi
+ \ifx\hvSet@rotAngle\hv@Zero
+ \usebox{\@tempboxa}%
+ \else
+ \rotatebox{\hvSet@rotAngle}{\usebox{\@tempboxa}}%
+ \fi
+ \ifhv@nonFloat
+ \ifx\hvSet@objectPos\hv@Center
+ \ifhv@nonFloat
+ \hspace{\fill}%
\fi
+ \fi
+ \endgroup% End the nonfloat part
+ \else
+ \end{\hv@floatType}% End the floating environment
+ \fi
+ \endgroup% startet at main \hvFloat
}
%
\newenvironment{hvFloatEnv}[1][\textwidth]
{\minipage{#1}\center}
{\endcenter\endminipage}
%
+\newcounter{hvpfigure}
+\newcounter{hvptable}
+
+\def\drawSepLine{%
+ \noindent
+ \if@twocolumn\rule{\columnwidth}{0.4pt}\else\rule{\linewidth}{0.4pt}\fi
+ \vspace{0pt}%
+}
+
+\def\set@caption@object{% first caption, then object
+ \begin{\hv@floatType}[!b]
+ \capstart
+ \belowcaptionskip=0pt% local change
+ \ifhv@separatorLine\drawSepLine\fi
+ \expandafter\ifx\expandafter\relax\hv@shortCap\relax
+ \caption{\hv@longCap}%
+ \else
+ \caption[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \expandafter\ifx\expandafter\relax\hv@label\relax\else
+ \label{\hv@label-cap}\fi
+ \end{\hv@floatType}%
+%
+ \if@hvstar
+ \begin{\hv@floatType*}[!p]
+ \else
+ \begin{\hv@floatType}[!p]
+ \fi
+ \edef\@captype{hvp\@captype}%
+ \capstart
+ \refstepcounter{\@captype}%
+ \expandafter\ifx\expandafter\relax\hv@label\relax\else
+ \expandafter\label\expandafter{\hv@label}%
+ \fi
+ \ifhv@objectFrame\frame{\hv@floatObject}\else\hv@floatObject\fi
+ \if@hvstar
+ \end{\hv@floatType*}%
+ \else
+ \end{\hv@floatType}%
+ \fi
+}
+\def\set@object@caption{% first object, then caption
+ \if@hvstar
+ \begin{\hv@floatType*}[!p]
+ \else
+ \begin{\hv@floatType}[!p]
+ \fi
+ \edef\@captype{hvp\@captype}%
+ \capstart
+ \refstepcounter{\@captype}%
+ \expandafter\ifx\expandafter\relax\hv@label\relax\else
+ \expandafter\label\expandafter{\hv@label}%
+ \fi
+ \ifhv@objectFrame\frame{\hv@floatObject}\else\hv@floatObject\fi
+ \if@hvstar
+ \end{\hv@floatType*}%
+ \else
+ \end{\hv@floatType}%
+ \fi
+%
+ \begin{\hv@floatType}[!b]
+ \capstart
+ \belowcaptionskip=0pt% local change
+ \ifhv@separatorLine\drawSepLine\fi
+ \expandafter\ifx\expandafter\relax\hv@shortCap\relax
+ \caption{\hv@longCap}%
+ \else
+ \caption[\hv@shortCap]{\hv@longCap}%
+ \fi
+ \expandafter\ifx\expandafter\relax\hv@label\relax\else
+ \label{\hv@label-cap}
+ \fi
+ \end{\hv@floatType}%
+}
+%
+\def\do@@@@hvFloat{% special float page: caption <-> fullpage image
+% \typeout{hvfloat: \hvSet@capPos}%
+% \ifoddpage\typeout{hvfloat: Oddpage}\else\typeout{hvfloat: Evenpage}\fi
+ \ifx\hvSet@capPos\hv@Right \hv@@capPos=1
+ \else
+ \ifx\hvSet@capPos\hv@Even \hv@@capPos=2
+ \else
+ \ifx\hvSet@capPos\hv@Odd \hv@@capPos=3
+ \else
+ \ifx\hvSet@capPos\hv@Inner \hv@@capPos=4
+ \else
+ \ifx\hvSet@capPos\hv@Outer \hv@@capPos=5
+ \else
+ \hv@@capPos=0
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \checkoddpage
+ \ifcase\hv@@capPos% caption before object 0->left
+ \if@twocolumn
+ \if@firstcolumn
+ \ifhv@FullPage\afterpage{\set@caption@object}\else\set@caption@object\fi
+ \else
+ \afterpage{\set@caption@object}%
+ \fi
+ \else
+ \set@caption@object
+ \fi
+ \or% caption after object 1->right
+ \if@twocolumn
+ \if@firstcolumn
+ \afterpage{\null\afterpage{\set@object@caption}}%
+ \else
+ \set@object@caption%
+ \fi
+ \else
+ \set@object@caption
+ \fi
+ \or% caption on even page 2->left page
+ \ifoddpage\set@object@caption\else\set@caption@object\fi
+ \or% caption on odd page 3->right page
+ \ifoddpage\set@caption@object\else\afterpage{\set@caption@object}\fi
+ \or% caption on the inner column 4->inner
+ \if@twocolumn
+ \ifoddpage
+ \if@firstcolumn
+ \set@caption@object
+ \else
+ \afterpage{\set@object@caption}%
+ \fi
+ \else% even page (left)
+ \afterpage{%
+ \if@firstcolumn
+ \set@caption@object
+ \else
+ \afterpage{\set@caption@object}%
+ \fi
+ }%
+ \fi
+ \fi
+ \or% caption on the outer column
+ \if@twocolumn
+ \ifoddpage
+ \afterpage{\if@firstcolumn\set@caption@object\else\afterpage{\set@caption@object}\fi}%
+ \else% even page (left)
+ \if@firstcolumn
+ \set@caption@object
+ \else
+ \afterpage{\set@object@caption}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \endgroup% startet at main \hvFloat
+}%
+%
+
+
\endinput