summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-04-04 20:52:35 +0000
committerKarl Berry <karl@freefriends.org>2019-04-04 20:52:35 +0000
commitd9783f18c815aa817e3c05a0c214d9421d1c15d8 (patch)
treec5e58873b0e0f171c184b0e294c4584e9b406816 /Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty
parent67ebf2aef27b507f7520b4ec8a5cc23b9301bee7 (diff)
hvfloat (4apr19)
git-svn-id: svn://tug.org/texlive/trunk@50753 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty')
-rw-r--r--Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty146
1 files changed, 92 insertions, 54 deletions
diff --git a/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty b/Master/texmf-dist/tex/latex/hvfloat/hvfloat.sty
index c5a2e2bc77c..6f3a830f70e 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 1009 2019-04-01 12:44:03Z herbert $
+%% $Id: hvfloat.sty 1033 2019-04-04 07:24:57Z herbert $
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hvfloat}[2019/02/03 rotating of floating objects]
@@ -16,9 +16,10 @@
%% DESCRIPTION:
%% `hvfloat' offers rotating of captions and objects for floats
%%
-\def\fileversion{2.11}
-\def\filedate{2019/04/01}
+\def\fileversion{2.12}
+\def\filedate{2019/04/04}
\message{`hvfloat' v\fileversion, \filedate\space (Herbert Voss)}
+\let\hvFileVersion\fileversion
%
\newif\ifhv@fbox \hv@fboxfalse
\newif\ifhv@hyperref \hv@hyperreffalse
@@ -32,33 +33,38 @@
\PassOptionsToPackage{hypcap}{subcaption}
\RequirePackage{subcaption}
\RequirePackage{atbegshi}
-\ifhv@hyperref
- \RequirePackage{hyperref}
-% \RequirePackage{hypcap}
-\fi
-%\AtBeginDocument{\providecommand\capstart{}}% in no hyperref/hypcap is loaded
-%
+
\RequirePackage{expl3,multido}
\RequirePackage{graphicx}
\RequirePackage{xkeyval}
\RequirePackage{ifoddpage}
-%
\RequirePackage{afterpage}
+%\RequirePackage{zref-abspos}
+
+\ifhv@hyperref
+ \RequirePackage{hyperref}
+% \RequirePackage{hypcap}
+\fi
+%
+%\unitlength=1cm
+\providecommand*\LenToUnit[1]{\strip@pt\dimexpr#1*\p@/\unitlength}
\newlength\hvObjectWidth
\newlength\hvCapWidth
\newlength\hvWideWidth
\newlength\hvMultiFloatSkip
-
\newlength\hvMaxCapWidth
+%\newlength\hv@BottomSpace
+%\AtBeginDocument{%
+% \setlength\hv@BottomSpace{\dimexpr\paperheight-1in-\topmargin-\headheight-\headsep-\textheight}}
+
\newsavebox\hvObjectBox
\newsavebox\hvCaptionBox
\newsavebox\hvOBox
\newsavebox\@tempbox
\newsavebox\hv@caption@box
-%
\newif\ifhv@capbeside \hv@capbesidefalse
\def\hv@Top{top}
@@ -66,9 +72,7 @@
\def\hv@After{after}
\def\hv@Before{before}
\def\hv@Right{right}
-\def\hv@RIGHT{RIGHT}
\def\hv@Left{left}
-\def\hv@LEFT{LEFT}
\def\hv@Center{center}
\def\hv@Outer{outer}
\def\hv@Inner{inner}
@@ -79,7 +83,6 @@
\def\hv@Height{h}
\def\hv@Zero{0}
%
-
\def\hv@figure{figure}
%
\define@key{hvSet}{floatPos}[htbp]{% LaTeX's position parameters htbp
@@ -143,27 +146,22 @@
{\begingroup
\edef\x{\endgroup\noexpand\setkeys{hvSet}{\@nameuse{hv@#1}}}\x}% use a defined style
}
-
-
\def\hv@set#1{\begingroup\edef\x{\endgroup\noexpand\setkeys{hvSet}{#1}}\x}
%
\def\defhvstyle#1#2{\@namedef{hv@#1}{#2}}
%
-
\newcommand{\setDefaults}{%
\hv@set{%
floatPos=htbp, rotAngle=0, capWidth=n, capAngle=0,
capPos=bottom, capVPos=center, objectPos=center, objectAngle=0,
floatCapSep=5, useOBox=false, nonFloat=false,
- onlyText=false, wide=false, fullpage=false, %FullPage=false,
- FULLPAGE=false,
+ onlyText=false, wide=false, fullpage=false, FULLPAGE=false,
multiFloat=false,subFloat=false,
separatorLine,objectFrame=false,multiFloatSkip=\normalbaselineskip,
}%
}
\newcommand\reset@special@float{%
- \hv@set{subFloat=false,fullpage=false,%FullPage=false,
- multiFloat=false,FULLPAGE=false}}
+ \hv@set{subFloat=false,fullpage=false,multiFloat=false,FULLPAGE=false}}
\def\hv@vskip{\vspace{\hvMultiFloatSkip}}
@@ -211,6 +209,21 @@
\def\Gin@eheight{\paperheight}%
\Gin@boolkey{false}{iso}%
}
+\newcommand\IncludeGraphics[2][]{%
+% \newpage
+%\iffalse
+ \vspace*{\the\dimexpr-1in-\voffset+\topskip-\headheight-0.5\baselineskip}%
+ \leavevmode\checkoddpage
+ \ifoddpage
+ \hspace*{\dimexpr-\oddsidemargin-\parindent-1in}%
+ \else
+ \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]{%
\ifcase#1
@@ -256,7 +269,7 @@
\newif\if@hvsubstar
\setDefaults
-\def\hvFloat{\@ifnextchar*%
+\def\hvFloat{\@ifnextchar*% Main macro
{\hv@startrue\hv@maxImageWidth=\textwidth\hvFloat@i}%
{\hv@starfalse\hv@maxImageWidth=\columnwidth\hvFloat@i*}%
}
@@ -505,16 +518,37 @@
% 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
+ \ifx\hvSet@capPos\hv@Left
+ \hv@@capPos=0
\else
- \ifx\hvSet@capPos\hv@Outer
- \ifoddpageoroneside\hv@@capPos=2\else\hv@@capPos=0\fi
- \fi\fi\fi\fi\fi\fi
+ \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
+ \else
+ \ifx\hvSet@capPos\hv@Before
+ \hv@@capPos=0 % same as cappos=right
+ \else
+ \ifx\hvSet@capPos\hv@After
+ \hv@@capPos=2 % same as capPos=right
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
%%%%
\savebox{\@tempboxa}{%
\expandafter\ifcase\the\hv@@capPos % 0 is LEFT START \ifcase
@@ -629,9 +663,9 @@
\else
\ifx\hvSet@capPos\hv@Outer \hv@@capPos=5
\else
- \ifx\hvSet@capPos\hv@RIGHT \hv@@capPos=6
+ \ifx\hvSet@capPos\hv@Right \hv@@capPos=6 % only for twocolumn mode
\else
- \ifx\hvSet@capPos\hv@LEFT \hv@@capPos=7
+ \ifx\hvSet@capPos\hv@Left \hv@@capPos=7 % only for twocolumn mode
\else
\hv@@capPos=0
\fi
@@ -651,7 +685,12 @@
\ifoddpage
\afterpage{\setBottomCaption\setPageObject}%
\else% we are on an even page
- \setBottomCaption\setPageObject
+% \zsaveposy{hv@currentPos}%
+% \ifdim\the\dimexpr\zposy{hv@currentPos}sp-\hv@BottomSpace-1cm>\ht\TBox % enough space*
+ \setBottomCaption\setPageObject
+% \else
+% \afterpage{\afterpage{\setBottomCaption\setPageObject}}%
+% \fi
\fi
\or% caption on odd page 3->right page
\if@twoside
@@ -710,9 +749,9 @@
\fi
\else
\if@firstcolumn% on left side
- \afterpage{\setBottomCaption\setPageObject}% start next page/first column
+ \afterpage{\afterpage{\setBottomCaption\setPageObject}}% start next page/first column
\else% left page/column
- \setBottomCaption\setPageObject% start same page
+ \setBottomCaption\setPageObject% start on same page/column
\fi
\fi
\else % onecolumn
@@ -731,41 +770,36 @@
\if@firstcolumn
\setBottomCaption\setPageObject
\else
- \afterpage{\setBottomCaption\setPageObject}%
+
\fi
\fi
\else% onecolumn
\setBottomCaption\setPageObject
\fi
- \or% caption after object 6->RIGHT for twoside/twocolumn
+ \or% caption after object on same page 6->right for twocolumn
\if@twocolumn
\if@firstcolumn
\afterpage{\setPageObject\setBottomCaption}%
\else
- \setPageObject\setBottomCaption
+ \setPageObject\setBottomCaption
\fi
\else% always caption _after_ object for onecolumn
\setPageObject\setBottomCaption
\fi
- \or% caption before object 7->LEFT for twoside/twocolumn
+ \or% caption before object on same page 7->left for twocolumn
\if@twocolumn
\if@firstcolumn
- \setPageObject\setBottomCaption
+ \setBottomCaption\setPageObject
\else
\afterpage{\setBottomCaption\setPageObject}
\fi
- \else% onecolumn
- \ifoddpage
- \afterpage{\setBottomCaption\setPageObject}%
- \else
- \setBottomCaption\setPageObject
- \fi
+ \else% onecolumn -> same as before
+ \setBottomCaption\setPageObject
\fi
\fi
\endgroup% startet at main \hvFloat
}%
%
-
\def\setBottomCaption{%
\begin{\hv@floatType}[!b]
\ifhv@separatorLine\drawSepLine\fi
@@ -781,9 +815,9 @@
\begin{\hv@floatType}[p]%
\fi
\ifhv@FULLPAGE
- \vspace*{\the\dimexpr-1in-\voffset+\topskip-\headheight-0.5\baselineskip}%
+ \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep}%-0.5\baselineskip}%
+ \checkoddpage
\if@twoside
- \leavevmode\checkoddpage
\ifoddpage
\hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}%
\else
@@ -792,8 +826,9 @@
\else
\hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}%
\fi
- \put(0,0){\usebox\hvObjectBox}%
+ %\put(0,0){
\AtBeginShipoutNext{\thispagestyle{empty}}%
+ \usebox\hvObjectBox%}%
\else
\usebox\hvObjectBox
\fi
@@ -808,7 +843,7 @@
\def\getMultiCaptionAndLabel{%
\global\sbox\hvCaptionBox{\minipage[b]{\linewidth}%
- \setlength\belowcaptionskip{10pt}%
+ \setlength\belowcaptionskip{5pt}%
\setlength\abovecaptionskip{0pt}%
\hv@cntb=\clist_count:N\l_clist_Type
\advance\hv@cntb by \@ne
@@ -857,6 +892,8 @@
\def\getMultiSubCaptionAndLabel{%
\global\sbox\hvCaptionBox{\minipage{\linewidth}%
+ \setlength\belowcaptionskip{5pt}%
+ \setlength\abovecaptionskip{0pt}%
\xdef\@captype{\clist_item:Nn\l_clist_Type{1}}% the same for all subfloats
\edef\@tempa{\clist_item:Nn\l_clist_LofCaption{1}}%
\ifx\@tempa\@empty
@@ -907,11 +944,12 @@
\fi
\endminipage}%
}
-
\ExplSyntaxOff
\def\getSingleCaptionAndLabel{%
\global\sbox\hvCaptionBox{\minipage{\linewidth}%
+ \setlength\belowcaptionskip{5pt}%
+ \setlength\abovecaptionskip{0pt}%
\edef\@captype{\hv@floatType}%
\expandafter\ifx\expandafter\relax\hv@shortCap\relax
\caption{\hv@longCap}%