diff options
author | Karl Berry <karl@freefriends.org> | 2017-01-29 22:32:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-01-29 22:32:19 +0000 |
commit | 687ffbc778abf7b367ab1c6ed91c016e8138c2ad (patch) | |
tree | 98768d84ac615469355497157eaaca149ccebd63 /Master/texmf-dist/doc/latex/hvfloat | |
parent | b23b02a3137e6430337ced526eb6394b260901d7 (diff) |
hvfloat (29jan17)
git-svn-id: svn://tug.org/texlive/trunk@43083 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/hvfloat')
-rw-r--r-- | Master/texmf-dist/doc/latex/hvfloat/Changes | 9 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvfloat/README | 9 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvfloat/doc/bateaux.jpg (renamed from Master/texmf-dist/doc/latex/hvfloat/bateaux.jpg) | bin | 45694 -> 45694 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvfloat/doc/hvfloat.pdf | bin | 0 -> 364629 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvfloat/doc/hvfloat.tex (renamed from Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex) | 49 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvfloat/doc/rose.png (renamed from Master/texmf-dist/doc/latex/hvfloat/rose.png) | bin | 2493 -> 2493 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf | bin | 330767 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvfloat/latex/hvfloat.sty | 366 |
8 files changed, 406 insertions, 27 deletions
diff --git a/Master/texmf-dist/doc/latex/hvfloat/Changes b/Master/texmf-dist/doc/latex/hvfloat/Changes new file mode 100644 index 00000000000..bc82c78999f --- /dev/null +++ b/Master/texmf-dist/doc/latex/hvfloat/Changes @@ -0,0 +1,9 @@ +hvfloat.sty: +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 + +hvfloat.tex: the source of the documentation + diff --git a/Master/texmf-dist/doc/latex/hvfloat/README b/Master/texmf-dist/doc/latex/hvfloat/README index 7bcfd0f9254..e7110daa55c 100644 --- a/Master/texmf-dist/doc/latex/hvfloat/README +++ b/Master/texmf-dist/doc/latex/hvfloat/README @@ -1,8 +1,5 @@ -hvfloat.sty: -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 +hvfloat -hvfloat.tex: the source of the documentation +Placing figures/tables with various options, like rotating +the image/table and/or caption. diff --git a/Master/texmf-dist/doc/latex/hvfloat/bateaux.jpg b/Master/texmf-dist/doc/latex/hvfloat/doc/bateaux.jpg Binary files differindex bbf5485f076..bbf5485f076 100644 --- a/Master/texmf-dist/doc/latex/hvfloat/bateaux.jpg +++ b/Master/texmf-dist/doc/latex/hvfloat/doc/bateaux.jpg diff --git a/Master/texmf-dist/doc/latex/hvfloat/doc/hvfloat.pdf b/Master/texmf-dist/doc/latex/hvfloat/doc/hvfloat.pdf Binary files differnew file mode 100644 index 00000000000..8203da1d3bb --- /dev/null +++ b/Master/texmf-dist/doc/latex/hvfloat/doc/hvfloat.pdf diff --git a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex b/Master/texmf-dist/doc/latex/hvfloat/doc/hvfloat.tex index 65bbf3882a4..96be0774592 100644 --- a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.tex +++ b/Master/texmf-dist/doc/latex/hvfloat/doc/hvfloat.tex @@ -1,11 +1,9 @@ \listfiles -\documentclass{article} +\documentclass{scrartcl} \usepackage[T1]{fontenc} -\usepackage[latin1]{inputenc} -%\usepackage{mathptmx} -%\usepackage[scaled=0.92]{helvet} -\usepackage{courier} -\usepackage{comment} +\usepackage{libertine} +\usepackage[scaled=0.88]{beramono} +\usepackage[utf8]{inputenc} \usepackage{listings} % \lstset{% @@ -23,22 +21,26 @@ breaklines=true} % \usepackage[fbox]{hvfloat} +\let\hvVersion\fileversion \usepackage{graphicx} \usepackage{url} \usepackage{tabularx} \usepackage{lscape} \usepackage{multicol} -\usepackage[pdftitle={hvfloat - Rotating Objects and Captions}, pdfauthor={Herbert Voß}, urlcolor=blue, linktocpage, a4paper, colorlinks=true]{hyperref} +\usepackage[urlcolor=blue, linktocpage, a4paper, colorlinks=true]{hyperref} % \newcommand\CMD[1]{{\small\ttfamily\textbackslash{}#1}} \newcommand\ENV[1]{{\small\ttfamily#1} Environment} % \begin{document} -\title{Package \texttt{hvfloat}\\Rotating objects and captions\\ver 1.1} -\author{Herbert Voß\thanks{\protect\url{voss@perce.de}}} +\title{Package \texttt{hvfloat}\\Rotating 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. @@ -47,13 +49,13 @@ All objects and captions are framed, which is only for demonstration here and ha \vfill \hvFloat[% - nonFloat=true,% - capWidth=0.5,% - capPos=r,% - objectAngle=120,% - capAngle=-210,% - objectPos=c% -]{figure}{\fbox{\includegraphics[scale=0.9]{rose}}}{\fbox{What a nice Caption :-)}}{} + nonFloat=true, + capWidth=0.5, + capPos=r, + objectAngle=120, + capAngle=-210, + objectPos=c +]{figure}{\protect\fbox{\includegraphics[scale=0.9]{rose}}}{\protect\fbox{What a nice Caption :-)}}{} \vspace*{\fill} @@ -61,8 +63,13 @@ All objects and captions are framed, which is only for demonstration here and ha \tableofcontents + +\clearpage + +\listoftables \listoffigures + \clearpage \section{The Package Options} @@ -575,12 +582,12 @@ L & C & R \\\hline \end{lstlisting} +%\appendix +%\section{Problems} +%\begin{itemize} +%\item[] With the \texttt{nonfloat} option all objects are left aligned, \verb|\centering| doesn't work here. Only God knows why ...\hfill \textbf{solved!} +%\end{itemize} -\appendix -\section{Problems} -\begin{itemize} -\item[] With the \texttt{nonfloat} option all objects are left aligned, \verb|\centering| doesn't work here. Only God knows why ...\hfill \textbf{solved!} -\end{itemize} \section{The Package Source} diff --git a/Master/texmf-dist/doc/latex/hvfloat/rose.png b/Master/texmf-dist/doc/latex/hvfloat/doc/rose.png Binary files differindex 3bbb2e85fdb..3bbb2e85fdb 100644 --- a/Master/texmf-dist/doc/latex/hvfloat/rose.png +++ b/Master/texmf-dist/doc/latex/hvfloat/doc/rose.png diff --git a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf b/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf Binary files differdeleted file mode 100644 index a4e680bf4a3..00000000000 --- a/Master/texmf-dist/doc/latex/hvfloat/hvfloat.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/hvfloat/latex/hvfloat.sty b/Master/texmf-dist/doc/latex/hvfloat/latex/hvfloat.sty new file mode 100644 index 00000000000..d3fcaf319df --- /dev/null +++ b/Master/texmf-dist/doc/latex/hvfloat/latex/hvfloat.sty @@ -0,0 +1,366 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{hvfloat}[2012/03/04 rotating of floating objects] +%% +%% IMPORTANT NOTICE: +%% +%% This is file `hvfloat.sty', +%% +%% Herbert Voss <voss@perce.de> +%% march 04, 2017 +%% +%% 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. +%% +%% DESCRIPTION: +%% `hvfloat' offers rotating of captions and objects for floats +%% +\def\fileversion{1.2} +\def\filedate{2017/01/28} +\message{`hvfloat' v\fileversion, \filedate\space (Herbert Voss)} +% +\newif\ifhv@fbox \hv@fboxfalse +\DeclareOption{fbox}{\hv@fboxtrue\setlength{\fboxsep}{1pt}} +\ProcessOptions +% +\RequirePackage{graphicx} +\RequirePackage{keyval} +%\RequirePackage{ifthen} +\RequirePackage{caption} +% +\newlength\hvObjectWidth +\newlength\hvCapWidth +\newlength\hvMaxCapWidth +\newsavebox\hvObjectBox +\newsavebox\hvCaptionBox +\newsavebox\hvOBox +% +\newif\ifhv@useOBox +\newif\ifhv@nonFloat +\newif\ifhv@onlyText + +\def\hv@figure{figure} +% +\def\hvSet@boolkey#1#2{\csname hv@#2\ifx\relax#1\relax true\else#1\fi\endcsname} +% +\define@key{hvSet}{floatPos}[htbp]{ % LaTeX's position parameters htbp + \def\hvSet@floatPos{#1}% +} +\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> + \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}{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 + \def\hvSet@objectPos{#1}% it is relativ to the document +} +\define@key{hvSet}{objectAngle}[0]{ % -360..+360 + \def\hvSet@objectAngle{#1}% +} +\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}{nonFloat}[false]{% Do not use float environment + \lowercase{\hvSet@boolkey{#1}}{nonFloat}% +} +\define@key{hvSet}{onlyText}[false]{% Write the caption only as text + \lowercase{\hvSet@boolkey{#1}}{onlyText}% +} +% +\newcommand{\setDefaults}{% +\setkeys{hvSet}{% + floatPos=htbp, rotAngle=0, capWidth=.8, capAngle=0,% + capPos=b, capVPos=c, objectPos=c, objectAngle=0,% + floatCapSep=5, useOBox=false, nonFloat=false,% + onlyText=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}{% + \setlength{\hvAboveCaptionSkip}{\abovecaptionskip} + \setlength{\hvBelowCaptionSkip}{\belowcaptionskip} + \setlength{\abovecaptionskip}{0pt} + \setlength{\belowcaptionskip}{0pt} +} +\newcommand{\restoreCaptionSkip}{% + \setlength\abovecaptionskip{\hvAboveCaptionSkip} + \setlength\belowcaptionskip{\hvBelowCaptionSkip} +} +% +% +\newcommand{\figcaption}[2][]{\def\@captype{figure}% + \ifx\relax#1\relax \caption{#2}\else\caption[#1]{#2}\fi} +\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[]}% +} +\def\do@@hvFloat[#1]#2#3{% + \def\hv@shortCap{#1} + \def\hv@longCap{#2} + \def\hv@label{#3} +%\newcommand*{\hvFloat}[5][]{% +% [#1}: keyvalues +% #2: type figure | table | ... +% #3: float contents +% [#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\@tempa{90}% + \ifx\hvSet@rotAngle\@tempa \setlength{\hvMaxCapWidth}{\textheight} + \else \setlength{\hvMaxCapWidth}{\linewidth} + \fi +% +% First we save the object in \hvObjectBox +% + \ifx\hvSet@objectAngle\hv@Zero % rotate the object? + \savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi} + \else + \savebox{\hvObjectBox}{% + \rotatebox{\hvSet@objectAngle}{% + \ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}} + \fi + \setlength{\hvObjectWidth}{\wd\hvObjectBox} +% +% Now we save the caption with its defined \hvCapWidth +% + \ifx\hvSet@capWidth\hv@Width\setlength{\hvCapWidth}{\hvObjectWidth} + \else + \ifx\hvSet@capWidth\hv@Height\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} + \else + \setlength{\hvCapWidth}{\hvMaxCapWidth} + \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}{% + \begin{minipage}[b]{\hvCapWidth}% minipage, to get hyphenation + \ifhv@nonFloat + \ifhv@onlyText#2 + \else + \ifx\hv@floatType\hv@figure + \ifx\relax#1\relax \figcaption{#2}\else\figcaption[#1]{#2}\fi + \else + \ifx\relax#1\relax \tabcaption{#2}\else\tabcaption[#1]{#2}\fi% + \fi + \fi + \else + \expandafter\ifx\expandafter\relax\hv@shortCap\relax \caption{#2}\else\caption[#1]{#2}\fi + \fi + \label{#3}% + \end{minipage}% + }% + \else + \sbox{\hvCaptionBox}{% + \rotatebox{\hvSet@capAngle}{% + \begin{minipage}[b]{\hvCapWidth}% minipage, to get hyphenation + \ifhv@nonFloat + \ifhv@onlyText#2 + \else + \ifx\hv@floatType\hv@figure + \ifx\relax#1\relax \figcaption{#2}\else\figcaption[#1]{#2}\fi + \else + \ifx\relax#1\relax \tabcaption{#2}\else\tabcaption[#1]{#2}\fi% + \fi + \fi + \else + \expandafter\ifx\expandafter\relax\hv@shortCap\relax \caption{#2}\else\caption[#1]{#2}\fi% + \fi + \label{#3}% + \end{minipage}% + }% + }% + \fi% +%% + \restoreCaptionSkip% save old values + \ifx\hvSet@objectPos\hv@Right\raggedleft% + \else% + \ifx\hvSet@objectPos\hv@Center + \ifhv@nonFloat\hspace*{\fill}\else\centering\fi% + \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 +% + \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}}% + \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}}% + \fi + \hspace{\hvSet@floatCapSep pt}% capfloatsep + \ifhv@fbox\fbox{\raisebox{-\height}{\usebox{\hvObjectBox}}}% + \else \raisebox{-\height}{\usebox{\hvObjectBox}}% + \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} + \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 +% +% 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 + \fi +} +% +\newenvironment{hvFloatEnv}[1][\textwidth] + {\minipage{#1}\center} + {\endcenter\endminipage} +% +\endinput |