From cf0fa0dcc6bbb280dc18c7fe6c6d38b16c3f26b3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 12 Mar 2021 22:59:59 +0000 Subject: hvfloat (12mar21) git-svn-id: svn://tug.org/texlive/trunk@58295 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/hvfloat/Changes | 1 + Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf | Bin 2967825 -> 22514815 bytes Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex | 300 ++++++++++++++++++++++-- Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty | 216 +++++++++++++++-- 4 files changed, 470 insertions(+), 47 deletions(-) (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/hvfloat/Changes b/Master/texmf-dist/doc/latex/hvfloat/Changes index 083cd05ceb5..796f24877b7 100644 --- a/Master/texmf-dist/doc/latex/hvfloat/Changes +++ b/Master/texmf-dist/doc/latex/hvfloat/Changes @@ -1,4 +1,5 @@ hvfloat.sty: +2.18 2021-03-12 - add support for doublepage objects 2.17 2020-10-31 - fix for label setting of non floating objects 2.16 2019-08-31 - fix for \hvFloat* and full page images 2.15 2019-05-13 - added optional arguments capFormat and subcapFormat diff --git a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf b/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf index 0928f3b1879..adcbeecc695 100644 Binary files a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf and b/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf differ diff --git a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex b/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex index 5c330d42090..0896645980c 100644 --- a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex +++ b/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex @@ -42,6 +42,11 @@ \usepackage{multicol} \usepackage{blindtext} +\let\hvBlindtext\Blindtext +\def\Blindtext{\par\color{black!40}\hvBlindtext\par\normalcolor} +\makeatletter +\def\hvblindtext{\textcolor{black!40}{\blindtext@text}} +\makeatother \usepackage{marginnote} %\usepackage{imakeidx} @@ -550,7 +555,7 @@ Code for figure \ref{fig:1}: objectPos=c]{figure}{\includegraphics[scale=0.9]{images/rose}}% [Caption beside object and vertically centered]% {Caption vertically centered right beside the float with a natural caption width - (the default). \blindtext}% + (the default). \hvblindtext}% {fig:1} @@ -589,7 +594,7 @@ placed vertically centered to the object. Important for the height of the object orthogonal rectangle. -\blindtext +\hvblindtext Code for figure \ref{fig:3}: \begin{lstlisting} @@ -642,7 +647,7 @@ Code for figure~\ref{fig:20}: a caption on the right side for an even page and on the left side for an odd page.}{fig:20} -\blindtext +\hvblindtext \label{page:1}\checkoddpage @@ -688,7 +693,7 @@ even \fi page, the reason why figure~\ref{fig:20b} has the caption for \emph{inn and figure~\ref{fig:21} for \emph{outer} on the right side. -\blindtext +\hvblindtext \label{page:2} Code for figure \ref{fig:22}: @@ -806,7 +811,7 @@ in a minipage, the reason why it will be local to the current image.. \hvFloat[% capPos=right, capFormat={labelsep=newline,justification=RaggedRight,font={small,it},labelfont=bf} -]{figure}{\frame{\includegraphics{images/rose}}}{\blindtext}{fig:66} +]{figure}{\frame{\includegraphics{images/rose}}}{\hvblindtext}{fig:66} \section{Horizontal Position of the Float} @@ -842,7 +847,7 @@ The code for figure \ref{fig:7}: ]{figure}{\includegraphics{images/rose}}{% Caption at top right beside the float and object position left}{fig:7} -\blindtext +\hvblindtext The same with \Lkeyset{capPos=left}: @@ -858,7 +863,7 @@ The same with \Lkeyset{capPos=left}: ]{figure}{\includegraphics{images/rose}}{% Caption at top right beside the float and object position left}{fig:700} -\blindtext +\hvblindtext The code for figure \ref{fig:8}: @@ -884,7 +889,7 @@ The code for figure \ref{fig:8}: ]{figure}{\includegraphics{images/rose}}{% Caption at top left beside the float and object position right}{fig:8} -\blindtext +\hvblindtext \section{Wide floats} @@ -913,7 +918,7 @@ the option \texttt{wide}.}{fig:70} Caption at top right beside the float and object position left and the option \texttt{wide}.}{fig:70} -%\blindtext +%\hvblindtext The code for figure \ref{fig:80}: @@ -939,7 +944,7 @@ The code for figure \ref{fig:80}: For a twosided document it will place the object always in the margin. -\blindtext +\hvblindtext \begin{lstlisting} \hvFloat[wide, @@ -962,7 +967,7 @@ the option \texttt{wide}.}{fig:81} Now we set the same image with the same setting on the next page. The caption will change its side due to the setting \Lkeyset{capPos=outer}. -\blindtext +\hvblindtext @@ -1074,10 +1079,10 @@ with the \Lkeyset{objectPos=l} parameter objectPos=center, ]{figure}{\includegraphics[width=0.9\textheight]{images/CTAN}}% [Object and Caption in landscape mode]{% - Caption and object in landscape mode. \blindtext}{fig:9} + Caption and object in landscape mode. \hvblindtext}{fig:9} -\blindtext +\hvblindtext The code for figure \ref{fig:10}: @@ -1106,13 +1111,13 @@ The code for figure \ref{fig:10}: ]{figure}{\includegraphics[width=\textheight]{images/CTAN}}% [Rotated Caption in Landscape]{% Caption right beside the float and object position left. The caption rotated by $-90$ degrees. - \blindtext}{fig:10} + \hvblindtext}{fig:10} -\blindtext +\hvblindtext -\blindtext +\hvblindtext @@ -1186,7 +1191,7 @@ For example see table~\ref{table:1} and \ref{table:2}: \end{tabular}% } -\blindtext +\hvblindtext %[xrightmargin=-8em,xleftmargin=-1em] \begin{lstlisting} @@ -1211,7 +1216,7 @@ The code for table \ref{table:1} and \ref{table:2} is: capPos=top, useOBox=true]{table}{}{Demonstration of the \texttt{useOBox} Parameter}{table:1} -\blindtext +\hvblindtext \hvFloat[% floatPos=hb, @@ -1279,9 +1284,9 @@ The code for figure \ref{fig:text}: a starting \texttt{Figure:} or \texttt{Table:}}{fig:text} \bigskip -%\blindtext +%\hvblindtext -%\blindtext +%\hvblindtext \section{Environment \texttt{hvFloatEnv}}\label{sec:env} @@ -1332,9 +1337,9 @@ L & C & R \\\hline \end{hvFloatEnv} %\bigskip -%\blindtext +%\hvblindtext -%\blindtext +%\hvblindtext \section{Full page objects in onecolumn mode} @@ -2439,6 +2444,246 @@ should be true (see listing). %\index{capPos@\texttt {capPos} (keyword)|)} +\section{Doublepage objects -- images and/or tabulars} +If an image or a tabular or any other object is too big for one page, it can be split over two pages (left -- right). +It is obvious that this makes only sense for twoside documents. +There are three optional arguments: + +\begin{description} +\item[\Lkeyword{doublePage}] A splitted object with or without a caption on top of a double page, beginning in the left top text area. +The user has to scale the image to be sure that the object will not be greater than \verb|2\paperwidth-4\margin|. The caption can be rotated +on the right side of the right object part or under the right part. + + +\item[\Lkeyword{doublePAGE}] A splitted object with or without a caption on top of a double page, beginning at the left side +of the paper area and top of the text area. +The user has to scale the image to be sure that the object will not be greater than \verb|2\paperwidth|. The caption can only be +under the right part of the object. The will be \emph{no additional text} on the double page. + +\item[\Lkeyword{doubleFULLPAGE}] A splitted object with or without a caption on top of a double page, beginning at the +left top paper edge and filling the complete double page. +The user has to scale the image to be sure that the object will not be greater than \verb|2\paperwidth|. A caption will be +rotated and written \emph{over} the object. The user has to take care for a correct text color. +\end{description} + +\subsection{\Lkeyword{doubleFULLPAGE}} +The scaling of the image is leave to the user. If the proportion of the object doesn't fit 2*paperwidth/paperheight, +then there can be a white part on the right or bottom of the object. A pagenumber will not be printed. You'll +find a marginnote where the following full doublepage image is defined. It appears on the the next following +even page and following text will be placed \emph{before} the object. + + + +\begin{lstlisting} +\Blindtext + +\hvFloat[doubleFULLPAGE,capPos=r,capAngle=90]% + {figure}% + {\includegraphics[angle=90,width=2\paperwidth]{images/raphi}}% + [Eine doppelseitige Abbildung mit Caption auf der Abbildung]% + {Eine Beschriftung einer doppelseitigen Abbildung, die ÜBER den rechten + Teil der Abbildung platziert wird. Die Abbildung beginnt am linken + Papierrand. Auf den Seiten wird kein weiterer Text + platziert. Für das LOF wird dabei eine Kurzform berücksichtigt. Parameter + ist \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE0} + +\Blindtext +\end{lstlisting} + +\Blindtext +\marginnote{doubleFULLPAGE0} + \hvFloat[doubleFULLPAGE,capPos=r,capAngle=90]% + {figure}% + {\includegraphics[angle=90,width=2\paperwidth]{images/raphi}}% + [Eine doppelseitige Abbildung mit Caption auf der Abbildung]% + {Eine Beschriftung einer doppelseitigen Abbildung, die ÜBER den rechten + Teil der Abbildung platziert wird. Die Abbildung beginnt am linken + Papierrand. Auf den Seiten wird kein weiterer Text + platziert. Für das LOF wird dabei eine Kurzform berücksichtigt. Parameter + ist \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE0} + +\Blindtext + +\Blindtext + +\subsection{\Lkeyword{doublePAGE}} +With this option the object also starts at the left paper margin but on the top of the text area. +There will be pagenumbers and a caption can be rotated on the right of the object or under it. + +\begin{lstlisting} +\Blindtext + +\hvFloat[doublePAGE]% + {figure}% + {\includegraphics[width=2\paperwidth]{images/felsen-wasser}}% + [Eine doppelseitige Abbildung mit Caption unterhalb der rechten Abbildung]% + {Eine Beschriftung einer doppelseitigen Abbildung, die unterhalb der rechten + Teils der Abbildung platziert wird. Die Abbildung beginnt am linken + Papierrand. Auf den Seiten wird kein weiterer Text + platziert. Für das LOF wird dabei eine Kurzform berücksichtigt. Parameter + ist \texttt{doublePAGE}}% + {fig:doublePAGE0} + +\Blindtext +\end{lstlisting} + +\Blindtext + +\marginnote{doublePAGE0} +\hvFloat[doublePAGE]% + {figure}% + {\includegraphics[width=2\paperwidth]{images/felsen-wasser}}% + [Eine doppelseitige Abbildung mit Caption unterhalb der rechten Abbildung]% + {Eine Beschriftung einer doppelseitigen Abbildung, die unterhalb der rechten + Teils der Abbildung platziert wird. Die Abbildung beginnt am linken + Papierrand. Auf den Seiten wird kein weiterer Text + platziert. Für das LOF wird dabei eine Kurzform berücksichtigt. Parameter + ist \texttt{doublePAGE}}% + {fig:doublePAGE0} + +\Blindtext + + +\subsection{\Lkeyword{doublePage}} +With this option the object also starts at the left top of the text area. +There will be pagenumbers and a caption can be rotated on the right of the object or under it +and the rest of the text area is filled with text. + +\begin{lstlisting} +\Blindtext + +\hvFloat[doublePage,capWidth=n,capPos=r]% + {figure}% + {\includegraphics[width=2\textwidth]{images/felsen-wasser-small}}% + [Eine doppelseitige Abbildung mit rechtsseitiger Caption unterhalb]% + {Eine Beschriftung einer doppelseitigen Abbildung, die unterhalb des rechten + Teils der Abbildung platziert wird. Die Abbildung beginnt am linken + Textrand. Auf den Seiten wird ansonsten weiterer Text + platziert. Für das LOF wird dabei eine Kurzform berücksichtigt. Parameter + ist \texttt{doublePage}}% + {fig:doublePage0} + +\Blindtext +\end{lstlisting} + +\Blindtext + +\marginnote{doublePage0} +\hvFloat[doublePage,capWidth=n,capPos=r]% + {figure}% + {\includegraphics[width=2\textwidth]{images/felsen-wasser-small}}% + [Eine doppelseitige Abbildung mit rechtsseitiger Caption unterhalb]% + {Eine Beschriftung einer doppelseitigen Abbildung, die unterhalb des rechten + Teils der Abbildung platziert wird. Die Abbildung beginnt am linken + Textrand. Auf den Seiten wird ansonsten weiterer Text + platziert. Für das LOF wird dabei eine Kurzform berücksichtigt. Parameter + ist \texttt{doublePage}}% + {fig:doublePage0} + +\Blindtext + + + +\subsection{Tabulars} + +In General there is no difference in an imgage or tabular or simple text. The object will be saved in a box and +then clipped. If the object is a tabular one might modify the tabular if it will be split in the middle of a +column. In such a case one can insert some additional horizontal space for this coloumn. + +The tabular itself can be saved into the internal box \Lcs{hvOBox} or put directly as parameter into the +macro. + + +\begin{lstlisting}[basicstyle=\footnotesize\ttfamily] +\global\savebox\hvOBox{% +\begin{tabular}{l*{18}r} \toprule + & \textbf{1972} & \textbf{1973} & \textbf{1974} & \textbf{1975} & \textbf{1976} + & \textbf{1977} & \textbf{1978} & \textbf{1979} & \textbf{1980} & \textbf{1981} & \textbf{1982} & \textbf{1983} & \textbf{1984} & \textbf{1985} + & \textbf{1986} & \textbf{1987} & \textbf{1988} & \textbf{1989} + \\\midrule +\addlinespace[3pt] +Zeile 1 & 1 & 3 & 1 & 1 & 1 & 0 & 1 & 1 & 0 & 0 & 0 & 0 &20 & 0 & 2 & 2 & 2 & 1\\\addlinespace[3pt] +Zeile 2 & 1 & 1 & 3 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 2 & 1 & 3 & 4 & 4 & 6 & 4 & 2\\\addlinespace[3pt] +Zeile 3 & 2 & 1 & 2 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 5 & 3 & 1 & 7 & 7 & 3\\\addlinespace[3pt] +Zeile 4 & 1 & 0 & 5 & 1 & 2 & 0 & 0 & 0 & 0 & 2 & 1 & 0 & 1 & 0 & 3 & 7 & 2 & 1\\\addlinespace[3pt] +Zeile 6 & 2 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 0 & 5 & 2 & 2 & 5 & 4 & 2\\\addlinespace[3pt] +Zeile 5 & 0 & 0 & 4 & 2 & 1 & 2 & 2 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 2 & 5 & 4 & 3\\\addlinespace[3pt] +Zeile 8 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 3 & 2 & 1 & 2 & 1 & 3 & 5 & 3 & 4\\\addlinespace[3pt] +Zeile 9 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 1 & 0 & 0 & 0 & 0 & 4 & 2 & 1 & 4 & 5 & 2\\\addlinespace[3pt] +Zeile10 & 0 & 1 & 3 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 1 & 0 & 1 & 1 & 1 & 4 & 4 & 1\\\addlinespace[3pt] +Zeile11 & 0 & 2 & 2 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 2 & 6 & 1 & 0 & 2 & 1 & 1 \\\addlinespace[3pt] +Zeile12 & 2 & 0 & 2 & 4 & 1 & 0 & 4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 3\\\addlinespace[3pt] +Lärm & 2 & 3 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 2 & 0 & 0 & 2 & 2 & 2\\\addlinespace[3pt] +Zeile13 & 0 & 1 & 0 & 0 & 1 & 0 & 3 & 0 & 0 & 0 & 0 & 0 & 2 & 0 & 1 & 3 & 0 & 2\\\addlinespace[3pt] +Zeile14 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 3 & 2 & 1 & 1 & 0\\\addlinespace[3pt] +Zeile15 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 4 & 0 & 0 & 3 & 1 & 1\\\addlinespace[3pt] +Zeile16 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 5 & 0 & 1\\\addlinespace[3pt]\midrule +Artikel gesamt & 2 & 6 & 13 & 8 & 4 & 3 & 5 & 4 & 0 & 6 & 3 & 5 &23 &10 & 8 & 15 & 13 &1 \\ +\bottomrule +\end{tabular}} + +\hvFloat[doublePage,capWidth=n,capPos=r]% + {table}% + {\usebox\hvOBox}%%%%%%%%%%%%%% + [Eine doppelseitige Tabelle mit rechtsseitiger Caption unterhalb]% + {Eine Beschriftung einer doppelseitigen Tabelle, die unterhalb des rechten + Teils der Abbildung platziert wird. Die Tabelle beginnt am linken + Textrand. Auf den Seiten wird ansonsten weiterer Text + platziert. Für das LOT wird dabei eine Kurzform berücksichtigt. Parameter + ist \texttt{doublePage}}% + {tab:doublePage3} + +\Blindtext +\end{lstlisting} + +\Blindtext + +\marginpar{doublePage1} +\global\savebox\hvOBox{% +\begin{tabular}{l*{18}r} \toprule + & \textbf{1972} & \textbf{1973} & \textbf{1974} & \textbf{1975} & \textbf{1976} + & \textbf{1977} & \textbf{1978} & \textbf{1979} & \textbf{1980} & \textbf{1981} & \textbf{1982} & \textbf{1983} & \textbf{1984} & \textbf{1985} + & \textbf{1986} & \textbf{1987} & \textbf{1988} & \textbf{1989} + \\\midrule +\addlinespace[3pt] +Zeile 1 & 1 & 3 & 1 & 1 & 1 & 0 & 1 & 1 & 0 & 0 & 0 & 0 &20 & 0 & 2 & 2 & 2 & 1\\\addlinespace[3pt] +Zeile 2 & 1 & 1 & 3 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 2 & 1 & 3 & 4 & 4 & 6 & 4 & 2\\\addlinespace[3pt] +Zeile 3 & 2 & 1 & 2 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 5 & 3 & 1 & 7 & 7 & 3\\\addlinespace[3pt] +Zeile 4 & 1 & 0 & 5 & 1 & 2 & 0 & 0 & 0 & 0 & 2 & 1 & 0 & 1 & 0 & 3 & 7 & 2 & 1\\\addlinespace[3pt] +Zeile 6 & 2 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 0 & 5 & 2 & 2 & 5 & 4 & 2\\\addlinespace[3pt] +Zeile 5 & 0 & 0 & 4 & 2 & 1 & 2 & 2 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 2 & 5 & 4 & 3\\\addlinespace[3pt] +Zeile 8 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 3 & 2 & 1 & 2 & 1 & 3 & 5 & 3 & 4\\\addlinespace[3pt] +Zeile 9 & 0 & 0 & 0 & 0 & 0 & 1 & 2 & 1 & 0 & 0 & 0 & 0 & 4 & 2 & 1 & 4 & 5 & 2\\\addlinespace[3pt] +Zeile10 & 0 & 1 & 3 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 1 & 0 & 1 & 1 & 1 & 4 & 4 & 1\\\addlinespace[3pt] +Zeile11 & 0 & 2 & 2 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 2 & 6 & 1 & 0 & 2 & 1 & 1 \\\addlinespace[3pt] +Zeile12 & 2 & 0 & 2 & 4 & 1 & 0 & 4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 3\\\addlinespace[3pt] +Lärm & 2 & 3 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 2 & 0 & 0 & 2 & 2 & 2\\\addlinespace[3pt] +Zeile13 & 0 & 1 & 0 & 0 & 1 & 0 & 3 & 0 & 0 & 0 & 0 & 0 & 2 & 0 & 1 & 3 & 0 & 2\\\addlinespace[3pt] +Zeile14 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 3 & 2 & 1 & 1 & 0\\\addlinespace[3pt] +Zeile15 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 4 & 0 & 0 & 3 & 1 & 1\\\addlinespace[3pt] +Zeile16 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 5 & 0 & 1\\\addlinespace[3pt]\midrule +Artikel gesamt & 2 & 6 & 13 & 8 & 4 & 3 & 5 & 4 & 0 & 6 & 3 & 5 &23 &10 & 8 & 15 & 13 &1 \\ +\bottomrule +\end{tabular}} + +\hvFloat[doublePage,capWidth=n,capPos=r]% + {table}% + {\usebox\hvOBox}%%%%%%%%%%%%%% + [Eine doppelseitige Tabelle mit rechtsseitiger Caption unterhalb]% + {Eine Beschriftung einer doppelseitigen Tabelle, die unterhalb des rechten + Teils der Abbildung platziert wird. Die Tabelle beginnt am linken + Textrand. Auf den Seiten wird ansonsten weiterer Text + platziert. Für das LOT wird dabei eine Kurzform berücksichtigt. Parameter + ist \texttt{doublePage}}% + {tab:doublePage3} + +\Blindtext + +\Blindtext + + \section{References to the page}\label{varioref} @@ -2513,6 +2758,8 @@ For example: \texttt{0.5\textbackslash columnwidth}.}{fig:style} \end{lstlisting} + +\setDefaults \defhvstyle{RightCaption}{floatPos=htb, capWidth=0.5, capPos=after, capVPos=bottom, objectPos=center} @@ -2521,6 +2768,9 @@ For example: \texttt{0.5\textbackslash columnwidth}.}{fig:style} +\hvblindtext + + \section{Global float setting} Instead of writing the following sequence into the preamble: @@ -2540,11 +2790,9 @@ optional package options to set the global placement: \usepackage[figure=tb,table=t]{hvfloat-fps} \end{verbatim} -\blindtext - -\blindtext +\Blindtext -%\setDefaults +\setDefaults \hvFloat[FULLPAGE]{figure}% {\includegraphics[FULLPAGE]{tiger}}% [A float which needs the complete paper width and height.]% diff --git a/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty b/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty index 622c1fba502..ff8fb42a4ce 100644 --- a/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty +++ b/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty @@ -1,4 +1,4 @@ -%% $Id: hvfloat.sty 36 2020-10-31 08:22:30Z herbert $ +%% $Id: hvfloat.sty 41 2020-11-21 21:03:28Z herbert $ %% %% %% IMPORTANT NOTICE: @@ -15,8 +15,8 @@ %% `hvfloat' offers rotating of captions and objects for floats %% \NeedsTeXFormat{LaTeX2e} -\def\fileversion{2.17} -\def\filedate{2020/10/31} +\def\fileversion{2.18} +\def\filedate{2021/03/12} \message{`hvfloat' v\fileversion, \filedate\space (Herbert Voss)} \ProvidesPackage{hvfloat}[\filedate\ rotating of floating objects] \let\hvFloatFileVersion\fileversion @@ -32,7 +32,7 @@ \RequirePackage{caption} \PassOptionsToPackage{hypcap}{subcaption} \RequirePackage{subcaption} -\RequirePackage{atbegshi} +\RequirePackage{atbegshi,picture,trimclip} \RequirePackage{expl3,multido} \RequirePackage{graphicx} @@ -64,6 +64,8 @@ \newsavebox\hvOBox \newsavebox\@tempbox \newsavebox\hv@caption@box +\newsavebox\hv@leftBox +\newsavebox\hv@rightBox \newif\ifhv@capbeside \hv@capbesidefalse @@ -133,13 +135,15 @@ \newif\ifhv@fullpage \newif\ifhv@FULLPAGE - -%\define@boolkey{hvSet}[hv@]{fullpage}[true]{}% fullpage float with caption on other page -%\define@boolkey{hvSet}[hv@]{FullPage}[true]{}% fullpage float with caption on other page -%\define@boolkey{hvSet}[hv@]{FULLPAGE}[true]{}% fullpage float with caption on other page +\newif\ifhv@doubleFULLPAGE +\newif\ifhv@doublePAGE +\newif\ifhv@doublePage \define@key{hvSet}{fullpage}[true]{\global\@nameuse{hv@fullpage#1}}% wegen \afterpage problem \define@key{hvSet}{FULLPAGE}[true]{\global\@nameuse{hv@FULLPAGE#1}} +\define@key{hvSet}{doubleFULLPAGE}[true]{\global\@nameuse{hv@doubleFULLPAGE#1}\hv@doublePagefalse\hv@doublePAGEfalse} +\define@key{hvSet}{doublePAGE}[true]{\global\@nameuse{hv@doublePAGE#1}\hv@doublePagefalse\hv@doubleFULLPAGEfalse} +\define@key{hvSet}{doublePage}[true]{\global\@nameuse{hv@doublePage#1}\hv@doublePAGEfalse\hv@doubleFULLPAGEfalse} \define@boolkey{hvSet}[hv@]{subFloat}[true]{% typeset values as subfloats \ifhv@subFloat\setkeys{hvSet}{multiFloat=false}\fi% @@ -168,7 +172,8 @@ floatPos=htbp, rotAngle=0, capWidth=n, capAngle=0, capPos=bottom, capVPos=center, objectPos=center, objectAngle=0, floatCapSep=5pt, useOBox=false, nonFloat=false, - onlyText=false, wide=false, fullpage=false, FULLPAGE=false, + onlyText=false, wide=false, fullpage=false, FULLPAGE=false, + doubleFULLPAGE=false, doublePage=false, doublePAGE=false, multiFloat=false,subFloat=false, separatorLine,objectFrame=false,multiFloatSkip=\normalbaselineskip, capFormat={}, subcapFormat={}, @@ -232,8 +237,6 @@ \Gin@boolkey{false}{iso}% } \newcommand\IncludeGraphics[2][]{% -% \newpage -%\iffalse \vspace*{\the\dimexpr-1in-\voffset+\topskip-\headheight-0.5\baselineskip}% \leavevmode\checkoddpage \ifoddpage @@ -242,9 +245,6 @@ \hspace*{\dimexpr-\evensidemargin-\parindent-1in}% \fi\noindent \includegraphics[#1,width=\paperwidth,height=\paperheight,keepaspectratio=false]{#2}% -%\fi -% \includepdf[#1]%,width=\paperwidth,height=\paperheight,keepaspectratio=false] -% {#2}% } \newcommand\put@CaptionBox[1][0]{% @@ -305,12 +305,10 @@ % #6: label % \def\hvFloat@i*{\@ifnextchar[{\do@hvFloat}{\do@hvFloat[]}} - \def\do@hvFloat[#1]{% \begingroup \setlength\hvWideWidth{\dimexpr\linewidth+\marginparwidth}% \hv@maxImageWidth=\textwidth -% \hv@capbesidefalse \reset@special@float \setcounter{hv@pfigure}{\value{figure}}% \setcounter{hv@ptable}{\value{table}}% @@ -382,7 +380,6 @@ \def\hvFloat@ii[#1]#2#3{% \hv@maxImageWidth=\textwidth -% \hv@capbesidefalse \ifx\relax#1\relax\else\setkeys{hvSet}{#1}\fi \gdef\hv@floatType{#2}% \ifx\relax#2\relax \setkeys{hvSet}{nonFloat=true}\fi @@ -393,6 +390,7 @@ \gdef\hv@shortCap{#1}% \gdef\hv@longCap{#2}% \gdef\hv@label{#3}% + \ifhv@capbeside\def\@@temp{1}\else\def\@@temp{0}\fi \ifhv@fullpage \def\hvSet@CapWidth{n}% relative value \do@@@@hvFloat% fullpage with caption on other page @@ -401,9 +399,23 @@ \def\hvSet@CapWidth{n}% relative value \do@@@@hvFloat% fullpage with caption on other page \else - \do@@@hvFloat + \ifhv@doubleFULLPAGE + \setlength\hvCapWidth{\textheight} + \do@hvFloat@doubleFULLPAGE% fullpage with caption rotated or under on an odd page + \else + \ifhv@doublePAGE + \expandafter\do@hvFloat@doublePAGE\@@temp% fullpage with caption rotated or under on an odd page + \else + \ifhv@doublePage + \expandafter\do@hvFloat@doublePage\@@temp% fullpage with caption rotated or under on an odd page + \else + \do@@@hvFloat + \fi + \fi + \fi \fi \fi +% \global\hv@capbesidefalse } % \def\do@@@hvFloat{% no special float page @@ -473,7 +485,7 @@ \fi \saveCaptionSkip % we put this space ourselve \ifx\hvSet@capAngle\hv@Zero % need rotation? - \sbox\hvCaptionBox{% NO rotation + \savebox\hvCaptionBox{% NO rotation \begin{minipage}[b]{\hvCapWidth}% minipage, to get hyphenation \ifx\relax\hv@caption@format\relax\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi \ifhv@nonFloat @@ -505,7 +517,7 @@ \end{minipage}% }% \else - \sbox\hvCaptionBox{% Rotation + \savebox\hvCaptionBox{% Rotation \rotatebox{\hvSet@capAngle}{% \begin{minipage}[b]{\hvCapWidth}% minipage, to get hyphenation \ifx\relax\hv@caption@format\relax\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi @@ -845,8 +857,170 @@ \fi \fi \endgroup% startet at main \hvFloat -}% +} +% +% +\def\do@hvFloat@doublePage#1{% image on left and right page with caption on the right ---------------------------------- + \checkoddpage + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \ifoddpage + \afterpage{% + \noindent + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \global\@tempdima=\dimexpr\paperwidth-1in-\evensidemargin\relax + \clipbox*{0 -\depth{} \@tempdima{} \height}{\usebox\hvObjectBox}% + \par\bigskip + \afterpage{% + \newpage + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \hspace*{\dimexpr-1in-\oddsidemargin-\parindent}% + \clipbox*{\@tempdima{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}% + \ifnum#1>0 + \medskip + \ifdim\dp\hvObjectBox > \z@ + \rotatebox[origin=c]{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}% + \else + \rotatebox{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}% + \fi + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}% + \fi + }% + }% + \else + \afterpage{% + \afterpage{% +% \newpage + \noindent\null + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \global\@tempdima=\dimexpr\paperwidth-1in-\evensidemargin\relax{} + \hspace*{\@tempdima}% + \clipbox*{0 -\depth{} \@tempdima{} \height}{\usebox\hvObjectBox}% + \par\bigskip + \afterpage{% + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \noindent + \hspace*{\dimexpr-1in-\marginparwidth}% + \clipbox*{\@tempdima{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}% + \ifnum#1>0 + \medskip + \ifdim\dp\hvObjectBox > \z@ + \rotatebox[origin=c]{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}% + \else + \rotatebox{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}% + \fi + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}% + \fi + }}}% + \fi + \endgroup +} + +\def\do@hvFloat@doublePAGE#1{% image on left and right page with caption on the right ---------------------------------- + \checkoddpage + \ifoddpage + \afterpage{% + \newpage + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% + \clipbox*{0 -\depth{} \paperwidth{} \height}{\usebox\hvObjectBox}% + \newpage + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}% + \clipbox*{\paperwidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}% + \ifnum#1>0 + \medskip + \ifdim\dp\hvObjectBox > \z@ + \rotatebox[origin=c]{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}% + \else + \rotatebox{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}% + \fi + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}% + \fi + \newpage + }% + \else + \afterpage{% + \AddToHookNext{shipout/before}{% +% \newpage + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \hspace*{\dimexpr-\evensidemargin-1in-\parindent}% + \clipbox*{0 -\depth{} \paperwidth{} \height}{\usebox\hvObjectBox}% + \newpage + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \hspace*{\the\dimexpr-1in-\oddsidemargin-\parindent\relax}% + \clipbox*{\paperwidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}% + \ifnum#1>0 + \medskip + \ifdim\dp\hvObjectBox > \z@ + \rotatebox[origin=c]{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}% + \else + \rotatebox{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}% + \fi + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}% + \fi + \newpage + }}% + \fi + \endgroup +} % +\def\do@hvFloat@doubleFULLPAGE{% image on left and right page with caption on the right ---------------------------------- + \checkoddpage + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \ifoddpage + \afterpage{% + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep+0.5\paperheight-0.5\ht\hvObjectBox-\normalbaselineskip}% + \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% + \thispagestyle{empty}% + \clipbox*{0 0 \paperwidth{} \height}{\usebox\hvObjectBox}% + \newpage + \thispagestyle{empty}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-0.5\paperheight+0.5\ht\hvObjectBox-\normalbaselineskip}% + \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}% + \clipbox*{\paperwidth{} 0 \wd\hvObjectBox{} \paperheight{}}{\usebox\hvObjectBox}% + \savebox\hvCaptionBox{\parbox{0.9\ht\hvObjectBox}{% + \captionof*{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}% + \put(-\ht\hvCaptionBox,0.5\ht\hvObjectBox){\makebox(0,0){\rotatebox{90}{\parbox{0.9\ht\hvObjectBox}{% + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}}} + \newpage + }% + \else + \afterpage{% + \AddToHookNext{shipout/before}{% + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-0.75\paperheight+0.75\ht\hvObjectBox}% + \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% + \thispagestyle{empty}% + \clipbox*{0 0 \paperwidth{} \paperheight}{\usebox\hvObjectBox}% + \newpage + \thispagestyle{empty}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-0.5\paperheight+0.5\ht\hvObjectBox-\normalbaselineskip}% + \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}% + \clipbox*{\paperwidth{} 0 \wd\hvObjectBox{} \paperheight{}}{\usebox\hvObjectBox}% + \savebox\hvCaptionBox{\parbox{0.9\ht\hvObjectBox}{% + \captionof*{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}% + \put(-\ht\hvCaptionBox,0.5\ht\hvObjectBox){\makebox(0,0){\rotatebox{90}{\parbox{0.9\ht\hvObjectBox}{% + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap\expandafter\label\expandafter{\hv@label}}}}}} + \newpage + }% + }% + \fi + \endgroup +} + \def\setBottomCaption{% \begin{\hv@floatType}[!b] \ifhv@separatorLine\drawSepLine\fi -- cgit v1.2.3