From 0ba5190228a7a7ca3ccd8972ddb21abb5ef69b6f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 31 Aug 2014 20:57:31 +0000 Subject: graphbox (31aug14) git-svn-id: svn://tug.org/texlive/trunk@35075 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/graphbox/README | 39 + Master/texmf-dist/doc/latex/graphbox/gboxsamp.mps | 9 + Master/texmf-dist/doc/latex/graphbox/gboxsamp.tex | 85 ++ Master/texmf-dist/doc/latex/graphbox/graphbox.pdf | Bin 0 -> 298293 bytes .../texmf-dist/source/latex/graphbox/graphbox.dtx | 973 +++++++++++++++++++++ .../texmf-dist/source/latex/graphbox/graphbox.ins | 41 + Master/texmf-dist/tex/latex/graphbox/graphbox.sty | 129 +++ Master/tlpkg/bin/tlpkg-ctan-check | 4 +- Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc | 1 + Master/tlpkg/tlpsrc/graphbox.tlpsrc | 0 10 files changed, 1279 insertions(+), 2 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/graphbox/README create mode 100644 Master/texmf-dist/doc/latex/graphbox/gboxsamp.mps create mode 100644 Master/texmf-dist/doc/latex/graphbox/gboxsamp.tex create mode 100644 Master/texmf-dist/doc/latex/graphbox/graphbox.pdf create mode 100644 Master/texmf-dist/source/latex/graphbox/graphbox.dtx create mode 100644 Master/texmf-dist/source/latex/graphbox/graphbox.ins create mode 100644 Master/texmf-dist/tex/latex/graphbox/graphbox.sty create mode 100644 Master/tlpkg/tlpsrc/graphbox.tlpsrc diff --git a/Master/texmf-dist/doc/latex/graphbox/README b/Master/texmf-dist/doc/latex/graphbox/README new file mode 100644 index 00000000000..71da8e90619 --- /dev/null +++ b/Master/texmf-dist/doc/latex/graphbox/README @@ -0,0 +1,39 @@ +graphbox v1.0 +Copyright 2013-2014 Niklas Beisert + +graphbox is an extension for the LaTeX2e package +graphicx to facilitate the placement of graphics +relative to the current position +using additional optional arguments [...] +of \includegraphics. +For example, changing the vertical alignment is convenient +for using graphics as elements of (mathematical) formulae. +Options for shifting, smashing and hiding the graphics +are mainly intended for designing presentations using, +e.g., the beamer framework. + +The package consists of the files + + README readme file + graphbox.ins installation file + graphbox.dtx source file + graphbox.sty package file + gboxsamp.tex sample latex file + gboxsamp.mps sample graphics file + graphbox.pdf manual + +The distribution consists of the files README, graphbox.ins and graphbox.dtx. + +Run "(pdf)latex graphbox.dtx" to compile the manual graphbox.pdf. + +Run "tex graphbox.ins" to create the package graphbox.sty and the sample gboxsamp.tex. +Copy the file graphbox.sty to an appropriate directory of your LaTeX +distribution, e.g. texmf-root/tex/latex/graphbox. + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. diff --git a/Master/texmf-dist/doc/latex/graphbox/gboxsamp.mps b/Master/texmf-dist/doc/latex/graphbox/gboxsamp.mps new file mode 100644 index 00000000000..99bc632366d --- /dev/null +++ b/Master/texmf-dist/doc/latex/graphbox/gboxsamp.mps @@ -0,0 +1,9 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: -21 -21 21 21 +%%EndComments +%%Page: 1 1 + 0 0 0 setrgbcolor 0 1.5 dtransform truncate idtransform setlinewidth pop [] + 0 setdash 1 setlinecap 1 setlinejoin 10 setmiterlimit +newpath -20 20 moveto 20 -20 lineto stroke +newpath -20 -20 moveto 20 20 lineto stroke +%%EOF diff --git a/Master/texmf-dist/doc/latex/graphbox/gboxsamp.tex b/Master/texmf-dist/doc/latex/graphbox/gboxsamp.tex new file mode 100644 index 00000000000..4149e408982 --- /dev/null +++ b/Master/texmf-dist/doc/latex/graphbox/gboxsamp.tex @@ -0,0 +1,85 @@ +%% +%% This is file `gboxsamp.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% graphbox.dtx (with options: `sample') +%% +%% Copyright (C) 2013-2014 Niklas Beisert +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +\NeedsTeXFormat{LaTeX2e}[1996/12/01] +\ProvidesFile{gboxsamp.tex}[2014/08/31 v1.0 sample for graphbox] +\documentclass[12pt]{article} +\usepackage[margin=2cm]{geometry} +\usepackage{graphicx} +\usepackage{graphbox} + +\newcommand{\sample}[1]{ +\textbf{options:} \texttt{#1}\par\vspace{1ex} +\parbox{0.6\textwidth}{% +XXXXXX\phantom{\fbox{}}XXXXXX\\% +XXXXXX\phantom{\fbox{}}XXXXXX\\% +XXXXXX\fbox{\includegraphics[#1]{gboxsamp.mps}}XXXXXX\\% +XXXXXX\phantom{\fbox{}}XXXXXX\\% +XXXXXX\phantom{\fbox{}}XXXXXX% +}\vspace{1cm}\par} + +\begin{document} +\sample{} +\sample{hide} +\sample{hide=true} +\sample{hide=false} +\newpage +\sample{align=b} +\sample{align=c} +\sample{align=t} +\newpage +\sample{align=l} +\sample{align=m} +\sample{align=u} +\newpage +\sample{vshift=10pt} +\sample{vshift=-10pt} +\newpage +\sample{lmargin=10pt} +\sample{rmargin=10pt} +\sample{tmargin=10pt} +\sample{bmargin=10pt} +\newpage +\sample{lmargin=-10pt} +\sample{rmargin=-10pt} +\sample{tmargin=-10pt} +\sample{bmargin=-10pt} +\newpage +\sample{vsmash=b} +\sample{vsmash=c} +\sample{vsmash=t} +\newpage +\sample{vsmash=l} +\sample{vsmash=m} +\sample{vsmash=u} +\newpage +\sample{hsmash=l} +\sample{hsmash=c} +\sample{hsmash=r} +\newpage +\sample{smash=tl} +\sample{smash=cc} +\sample{smash=br} +\newpage +\sample{smash,vshift=10pt} +\sample{smash,hshift=10pt} +\sample{smash,hshift=-10pt,vshift=-10pt} +\end{document} +\endinput +%% +%% End of file `gboxsamp.tex'. diff --git a/Master/texmf-dist/doc/latex/graphbox/graphbox.pdf b/Master/texmf-dist/doc/latex/graphbox/graphbox.pdf new file mode 100644 index 00000000000..2b4b2c8728a Binary files /dev/null and b/Master/texmf-dist/doc/latex/graphbox/graphbox.pdf differ diff --git a/Master/texmf-dist/source/latex/graphbox/graphbox.dtx b/Master/texmf-dist/source/latex/graphbox/graphbox.dtx new file mode 100644 index 00000000000..9411a852d19 --- /dev/null +++ b/Master/texmf-dist/source/latex/graphbox/graphbox.dtx @@ -0,0 +1,973 @@ +% \iffalse +% +% graphbox.dtx Copyright (C) 2013-2014 Niklas Beisert +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Niklas Beisert. +% +% This work consists of the files graphbox.dtx and graphbox.ins +% and the derived files graphbox.sty, gboxsamp.tex and gboxsamp.mps +% +%\NeedsTeXFormat{LaTeX2e}[1996/12/01] +%\ProvidesPackage{graphbox}[2014/08/31 v1.0 extension for graphicx to adjust containing box] +%\ProvidesFile{gboxsamp.tex}[2014/08/31 v1.0 sample for graphbox] +%
%!PS-Adobe-3.0 EPSF-3.0 +%<*driver> +%\ProvidesFile{graphbox.drv}[2014/08/31 v1.0 graphbox Reference Manual file] +\PassOptionsToClass{10pt,a4paper}{article} +\documentclass{ltxdoc} + +\usepackage[margin=35mm]{geometry} +\usepackage{hyperref} +\usepackage[usenames]{color} + +\hypersetup{colorlinks=true} +\hypersetup{pdfstartview=FitH} +\hypersetup{pdfpagemode=UseNone} + +\begin{document} + +\title{The \textsf{graphbox} Package} +\hypersetup{pdftitle={The graphbox Package}} +\author{Niklas Beisert\\[2ex] + Institut f\"ur Theoretische Physik\\ + Eidgen\"ossische Technische Hochschule Z\"urich\\ + Wolfgang-Pauli-Strasse 27, 8093 Z\"urich, Switzerland\\[1ex] + \href{mailto:nbeisert@itp.phys.ethz.ch}{\texttt{nbeisert@itp.phys.ethz.ch}}} +\hypersetup{pdfauthor={Niklas Beisert}} +\hypersetup{pdfsubject={Manual for the LaTeX2e Package graphbox}} +\date{31 August 2014, \textsf{v1.0}} +\maketitle + +\begin{abstract}\noindent +\textsf{graphbox} is an extension for the \LaTeXe{} package +\textsf{graphicx} to facilitate the placement of graphics +relative to the current position +using additional optional arguments |[...]| +of |\includegraphics|. +For example, changing the vertical alignment is convenient +for using graphics as elements of (mathematical) formulae. +Options for shifting, smashing and hiding the graphics +are mainly intended for designing presentations using, +e.g., the \textsf{beamer} framework. +\end{abstract} + +\tableofcontents + +% we do not have the sample graphics yet, so we use LaTeX internals: +\newcommand{\drawbox}[1]{% + \setlength{\unitlength}{#1}% + \begin{picture}(1, 1)% + \put(0,0){\line(1,1){1}}% + \put(1,0){\line(-1,1){1}}% + \end{picture}% +} +\newcommand{\hidebox}[1]{% + \setlength{\unitlength}{#1}% + \begin{picture}(1, 1)% + \end{picture}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Introduction} + +Changing the placement of graphics using |\includegraphics| +of the \textsf{graphicx} package is tedious. +The command allows to scale and even rotate a figure +by the optional arguments |[...]| of |\includegraphics|, namely |scale| +(|xscale|, |yscale|) and |rotate|. +However, it lacks options to change the vertical alignment, +shift the graphics or modify the containing {\TeX} box. +In order to position the graphics according to one's needs, +one would normally use the standard boxing tools of {\LaTeX} such as +|\makebox|, +|\parbox|, +|\raisebox| +or the +|minipage| and |picture| environments. +% +While practically anything can be achieved by a combination of these tools, +it has several disadvantages: +% +\begin{itemize} +\item +use of complex commands for standard situations; +\item +several boxing commands need to be combined to achieve the desired effect; +leads to several levels of nesting around the actual |\includegraphics| command; +\item +readability of the {\LaTeX} construction is low (what is going on?); +\item +adjusting the placement is tedious; +\item +the higher-level boxing commands of {\LaTeX} require to specify the box width; +however, the actual dimensions of the graphics are typically not known +(or they change as the graphics is modified); +furthermore the same number needs to be used in several places; +\item +guessing the width of the required boxes may lead to extra space +around the graphics or warning messages about an overfull box; +\item +\ldots +\end{itemize} +% +Therefore it would be desirable to specify the placement +along with other options in the |[...]| argument +of |\includegraphics|. +This may be helpful in the following situations: +% +\begin{itemize} +\item +presentations where several figure +need to be placed across the frames +without disturbing the flow of the text; +similarly, in the composition of posters; +\item +when graphics are used as elements +of (mathematical) formulae +one might prefer a central vertical alignment +over the default baseline alignment of +|\includegraphics|. +\end{itemize} + +The following discusses these situations in more detail. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Vertical Alignment} + +Suppose you want to show graphics files% +\footnote{a diagonal cross will serve as the sample figure in this documentation.} +of different height next to each other +(potentially accompanied by some text). +A plain inclusion via |\includegraphics| will produce +the output: +% +\[\drawbox{1cm}\qquad\drawbox{2cm}\qquad\mbox{some text}\] +% +This is because |\includegraphics| puts the graphics into a box +whose baseline is the lower bound of the box: +% +\[\underline{\qquad\fbox{\drawbox{1cm}}\qquad\fbox{\drawbox{2cm}}\qquad\fbox{\mbox{some text}}\qquad}\] +% +Instead, a central alignment of the graphics is desirable in many situations: +% +\[ +\parbox{1cm}{\drawbox{1cm}}\qquad +\parbox{2cm}{\drawbox{2cm}} +\qquad\mbox{some text} +\] +% +This can be achieved by code such as: +% +\begin{verbatim} + \parbox{1cm}{\includegraphics[width=1cm]{...}} + \qquad + \parbox{2cm}{\includegraphics[width=2cm]{...}} + \qquad + \mbox{some text} +\end{verbatim} +% +However, if the width of the graphics is not as evident +(e.g.\ when no width is specified or the graphics is scaled), +the resulting output may easily look like:% +\footnote{Boxes were added to display the size of the bounding boxes.} +% +\[ +\fbox{\parbox{0.8cm}{\makebox[0cm][l]{\drawbox{1cm}}}} +\qquad +\fbox{\parbox{3cm}{\centering\drawbox{2cm}}} +\qquad\mbox{some text} +\] +% +The present extension \textsf{graphbox} adds the option |align| to +|\includegraphics| to simplify the declaration: +\begin{verbatim} + \includegraphics[align=c,width=1cm]{...} + \qquad + \includegraphics[align=c,width=2cm]{...} + \qquad + \mbox{some text} +\end{verbatim} +% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Graphics Placement} + +A related issue is the fine-tuning of graphics placement: +In {\LaTeX} this can be achieved by the commands +|\raisebox| (vertically) and |\hspace| (horizontally). +Furthermore, one might want to place +the graphics into some free space relative to the present position. +This is commonly needed in designing presentations or posters, +where the flow of the text and the graphics is often fine-tuned. +For example, one may ignore the vertical height of the graphics +using |\smash|. Or one might place the graphics +at the present horizontal position without allocating space by +|\makebox[0pt]|, |\llap| or |\rlap|. + +Each of these elementary operations can be handled well, +but their combination can become very involved: +% +\begin{verbatim} + \smash{\raisebox{.1cm}{\makebox[0pt][l]{\hspace{1cm}{\includegraphics{...}}}}} +\end{verbatim} +% +For example, this may be used to produce the output: +\[ +\begin{tabular}[b]{cccc} + & A & B & C \\\hline +D & 1 & 2 & 3 \\ +E & 4 & 5 & 6 \\ +F & 7 & 8 & 9 +\end{tabular} +\fbox{\smash{\raisebox{.1cm}{\makebox[0pt][l]{\hspace{1cm}\drawbox{2cm}}}}} +\] +% +Here, the graphics was put next to a table. +The small box represents the anchor of the graphics. +It occupies no space which allows +to centre the table irrespectively of +the size of the graphics. +Unfortunately, the command is not easily readable. +The \textsf{graphbox} extension abbreviates the declaration +and make it much more accessible: +% +\begin{verbatim} + \includegraphics[smash=tr,hshift=1cm,vshift=.1cm]{...} +\end{verbatim} +% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Hiding Graphics}\label{sec:hide} + +Sometimes one might wish to hide a graphics while reserving the space +it would occupy.% +\footnote{In the \textsf{graphicx} package a +similar effect achieved by the option |draft|. +However, here the graphics are replaced by a box containing the file name.} +For example, this feature is needed in +presentations where the frames are successively uncovered. +In this \textsf{beamer} class the uncovering of frames is +conveniently achieved by the command |\pause|. +Unfortunately, the effect of |\pause| on graphics +is that they are either displayed or taken out of the text flow. +This has the effect that the formatting +can change drastically when graphics elements are uncovered: +% +\[ +\fbox{ +\mbox{\textcolor[gray]{0.5}{before}} +\ +\mbox{\textcolor[gray]{0.5}{after}} +} +\quad\longrightarrow\quad +\fbox{ +\mbox{before}\ +\drawbox{1cm} +\mbox{after}\ +} +\] +% + + +The \textsf{graphbox} extension adds the option |hide| +to |\includegraphics| to hide the corresponding +graphics while reserving the space it would otherwise occupy: +% +\[ +\fbox{\hidebox{1.5cm}} +\quad\longleftrightarrow\quad +\fbox{\drawbox{1.5cm}} +\] +% +Moreover, in conjunction with the \textsf{beamer} class, +the definition of the |\includegraphics| command +is altered such that it uses the same amount of +space in all visibility modes (specified through the +|\pause| mechanism and the |<...>| extension). +Visibility is handled by automatically setting the |hide| option: +% +\[ +\fbox{ +\mbox{\textcolor[gray]{0.5}{before}}\ +\hidebox{1cm}\ +\mbox{\textcolor[gray]{0.5}{after}} +} +\quad\longrightarrow\quad +\fbox{ +\mbox{before}\ +\drawbox{1cm}\ +\mbox{after} +} +\] +% + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Related CTAN Packages} + +The \textsf{graphbox} package extends the +package \href{http://ctan.org/pkg/graphicx}{\textsf{graphicx}}. +It also changes some functionality of the class +\href{http://ctan.org/pkg/beamer}{\textsf{beamer}} +if present: +% +\begin{itemize} +\item +Compatibility with the \textsf{graphicx} package +has been tested with +v1.0f (1999/02/16) and +v1.0g (2014/04/25). + +\item +The changes of functionality are described +in section~\ref{sec:hide}. +Compatibility with the +\textsf{beamer} class +has been tested with v3.33 (2013/12/25). + +\end{itemize} +% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Usage} + +To use \textsf{graphbox} simply add the command +\begin{center}|\usepackage{graphbox}|\end{center} +to the preamble of your {\LaTeX} document. +If not yet present, +the package \textsf{graphicx} will automatically be loaded. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Extensions} + +The package mainly extends the functionality of +the |\includegraphics| command of the \textsf{graphicx} package +by allowing several additional optional arguments |[...]| as follows: + +\begin{itemize} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|hide|[|=|\textit{bool}] + +hides the graphics (unless \textit{bool}=|false|) but reserves the space +it would have occupied. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|align|[|=|\textit{valign}] + +adjusts the vertical alignment of the graphics where \textit{valign} is one of the following: +\begin{itemize} +\item[|b|:] +baseline aligned to bottom of graphics;\\ +default behaviour when |align| is not specified; +\item[|c|:] +centre of current line aligned to centre of graphics;% +\footnote{The centre of the line appears to be (18/31)ex above the baseline +which is at the centre of a capital letter for the default font.}\\ +default behaviour when no parameter is given; +\item[|t|:] +top of current line aligned to top of graphics;% +\footnote{The top of the line is defined as (36/31)ex above the baseline +which is the height of a capital letter for the default font.} +\item[|l|:] +baseline aligned to bottom of graphics; same as |b|; +\item[|m|:] +baseline aligned to centre of graphics; +\item[|u|:] +baseline aligned to top of graphics. +\end{itemize} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|vsmash|[|=|\textit{vpos}] + +reduces the height of the bounding box to zero +(equivalent to |\smash|); +places the graphics according to +\textit{vpos} which can take the following values: +\begin{itemize} +\item[|b|:] +positions top of graphics below top of current line; +\item[|c|:] +positions centre of graphics at centre of current line;\\ +default behaviour when no parameter is given; +\item[|t|:] +positions bottom of graphics at baseline; +\item[|l|:] +positions top of graphics at baseline; +\item[|m|:] +positions centre of graphics at baseline; +\item[|u|:] + positions bottom of graphics at baseline; same as |t|; +\item[|n|:] +no vertical smashing. +\end{itemize} +% +Note that the parameter \textit{vpos} +has the opposite effect +of the parameter \textit{valign} of |align|. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|hsmash|[|=|\textit{hpos}] + +reduces the width of the bounding box to zero +(equivalent to |\makebox[0pt]|); +places the graphics according to +\textit{hpos} which can take the following values +\begin{itemize} +\item[|r|:] +positions graphics right of current position; +\item[|c|:] +positions centre of the graphics at current position; +default behaviour when no parameter is given; +\item[|l|:] +positions graphics left of current position; +\item[|n|:] +no horizontal smashing; +default behaviour when |hsmash| is not specified. +\end{itemize} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|smash|[|=|\textit{vpos}\,\textit{hpos}] + +combination of |vsmash=|\textit{vpos} and +|hsmash=|\textit{hpos}; +default behaviour is |cc|. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|vshift=|\textit{len} + +shifts the graphics up by \textit{len}. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|hshift=|\textit{len} + +shifts the graphics to the right by \textit{len}; +has no effect unless |hsmash| is activated. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|tmargin=|\textit{len} + +adds a top margin of height \textit{len}; +has no effect when |vsmash| is activated. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|bmargin=|\textit{len} + +adds a bottom margin of height \textit{len} +below the baseline; +has no effect when |vsmash| is activated. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|vmargin=|\textit{len} + +adds a bottom and top margin of height \textit{len}; +has no effect when |vsmash| is activated. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|lmargin=|\textit{len} + +adds a left margin of width \textit{len}; +has no effect when |hsmash| is activated. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|rmargin=|\textit{len} + +adds a right margin of width \textit{len}; +has no effect when |hsmash| is activated. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|hmargin=|\textit{len} + +adds a left and right margin of width \textit{len}; +has no effect when |hsmash| is activated. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +|margin=|\textit{len} + +adds an overall margin of length \textit{len} +around the graphics; +has no effect when |smash| is activated. + +\end{itemize} +% +In specifying lengths in the above arguments, +there are two additional dimensions |\gwidth| and |\gheight| +representing the actual width and height of the included graphics. +For example, one can add a horizontal margin of 10\% +of the size of the graphics by specifying |hmargin=0.1\gwidth|. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Package Options} + +The package provides one option: +% +\begin{itemize} +\item +|nobeamer| + +do not override the overlay processing +of the \textsf{beamer} class for |\includegraphics|; +as usual, graphics will occupy no space when covered. +\end{itemize} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\subsection{Feature Suggestions} +% +%\begin{itemize} +%\item +%Combine hshift and vshift into one definition. how? which order? +%\item +%negative bmargin +%\end{itemize} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\appendix + +\settowidth\MacroIndent{\rmfamily\scriptsize 000\ } +\parskip1ex +\parindent0pt + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Files and Installation} + +The package consists of the files +% +\begin{center} +\begin{tabular}{ll} + |README| & readme file \\ + |graphbox.ins| & installation file \\ + |graphbox.dtx| & source file \\ + |graphbox.sty| & package file \\ + |gboxsamp.tex| & sample file \\ + |gboxsamp.mps| & sample figure \\ + |graphbox.pdf| & manual +\end{tabular} +\end{center} +% +The distribution consists of the files +|README|, |graphbox.ins| and |graphbox.dtx|. +% +\begin{itemize} +\item +Run (pdf)\LaTeX{} on |graphbox.dtx| to compile the manual |graphbox.pdf| (this file). +\item +Run \LaTeX{} on |graphbox.ins| to create the package |graphbox.sty| +and the sample consisting of |gboxsamp.tex| and |gboxsamp.mps|. +Copy the file |graphbox.sty| to an appropriate directory of your \LaTeX{} +distribution, e.g.\ \textit{texmf-root}|/tex/latex/graphbox|. +\end{itemize} + + \DocInput{graphbox.dtx} + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Copyright} + +Copyright \copyright{} 2013--2014 Niklas Beisert + +This work may be distributed and/or modified under the +conditions of the \LaTeX{} Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in + \url{http://www.latex-project.org/lppl.txt} +and version 1.3 or later is part of all distributions of \LaTeX{} +version 2005/12/01 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Niklas Beisert. + +This work consists of the files |graphbox.dtx| and |graphbox.ins| +and the derived files |graphbox.sty|, |gboxsamp.tex| and |gboxsamp.mps| + +\end{document} +% +% \fi +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \section{Sample File} +%\iffalse +%<*sample> +%\fi +% +% In this section we provide a {\LaTeX} example how to use +% some of the \textsf{graphbox} extensions to \textsf{graphicx}. +% Preamble: +% +% \begin{macrocode} +\documentclass[12pt]{article} +\usepackage[margin=2cm]{geometry} +\usepackage{graphicx} +\usepackage{graphbox} +% \end{macrocode} + +% The macro |\sample{|\textit{options}|}| prints a block demonstrating the flow of text +% testing the new |\includegraphics| arguments \textit{options}: +% +% \fbox{\parbox{0.6\textwidth} +% {\textbf{options:} \textit{options}\par\vspace{1ex} +% \parbox{0.6\textwidth} +% { +% XXXXXX\phantom{\fbox{}}XXXXXX\\ +% XXXXXX\phantom{\fbox{}}XXXXXX\\ +% XXXXXX\fbox{\drawbox{1cm}}XXXXXX\\ +% XXXXXX\phantom{\fbox{}}XXXXXX\\ +% XXXXXX\phantom{\fbox{}}XXXXXX +% }}}\par +% +% The box indicates the resulting bounding box of the +% |\includegraphics| command. +% It is defined as follows: +% \begin{macrocode} +\newcommand{\sample}[1]{ +\textbf{options:} \texttt{#1}\par\vspace{1ex} +\parbox{0.6\textwidth}{% +XXXXXX\phantom{\fbox{}}XXXXXX\\% +XXXXXX\phantom{\fbox{}}XXXXXX\\% +XXXXXX\fbox{\includegraphics[#1]{gboxsamp.mps}}XXXXXX\\% +XXXXXX\phantom{\fbox{}}XXXXXX\\% +XXXXXX\phantom{\fbox{}}XXXXXX% +}\vspace{1cm}\par} +% \end{macrocode} + +% In the document body we test the various new options for |\includegraphics|: +% \begin{macrocode} +\begin{document} +\sample{} +\sample{hide} +\sample{hide=true} +\sample{hide=false} +\newpage +\sample{align=b} +\sample{align=c} +\sample{align=t} +\newpage +\sample{align=l} +\sample{align=m} +\sample{align=u} +\newpage +\sample{vshift=10pt} +\sample{vshift=-10pt} +\newpage +\sample{lmargin=10pt} +\sample{rmargin=10pt} +\sample{tmargin=10pt} +\sample{bmargin=10pt} +\newpage +\sample{lmargin=-10pt} +\sample{rmargin=-10pt} +\sample{tmargin=-10pt} +\sample{bmargin=-10pt} +\newpage +\sample{vsmash=b} +\sample{vsmash=c} +\sample{vsmash=t} +\newpage +\sample{vsmash=l} +\sample{vsmash=m} +\sample{vsmash=u} +\newpage +\sample{hsmash=l} +\sample{hsmash=c} +\sample{hsmash=r} +\newpage +\sample{smash=tl} +\sample{smash=cc} +\sample{smash=br} +\newpage +\sample{smash,vshift=10pt} +\sample{smash,hshift=10pt} +\sample{smash,hshift=-10pt,vshift=-10pt} +\end{document} +% \end{macrocode} +%\iffalse +% +%\fi +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \paragraph{Sample Graphics.} +%\iffalse +%<*figure> +%\fi +% +% The following is a sample Metapost graphics file (|gboxsamp.mps|) +% for use in the sample {\LaTeX} file: +% +% \begin{macrocode} +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: -21 -21 21 21 +%%EndComments +%%Page: 1 1 + 0 0 0 setrgbcolor 0 1.5 dtransform truncate idtransform setlinewidth pop [] + 0 setdash 1 setlinecap 1 setlinejoin 10 setmiterlimit +newpath -20 20 moveto 20 -20 lineto stroke +newpath -20 -20 moveto 20 20 lineto stroke +%%EOF +% \end{macrocode} +% It contains a black cross: +% \[\fbox{\drawbox{1.5cm}}\] +% The frame indicates the size of the graphics but it does not belong to it. +% +%\iffalse +%
+%\fi +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \section{Implementation} +%\iffalse +%<*package> +%\fi +% +% In this section we describe the package |graphbox.sty|. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \paragraph{Package Options.} +% +% By default, the package overrides the overlay meachanism +% for includegraphics of the class beamer. +% The global option |nobeamer| disables the interaction. +% \begin{macrocode} +\newif\ifGin@box@beamer\Gin@box@beamertrue +\DeclareOption{nobeamer}{\Gin@box@beamerfalse} +\ProcessOptions +% \end{macrocode} + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \paragraph{Required Packages.} +% +% The package loads \textsf{graphicx} if not yet present: +% \begin{macrocode} +\RequirePackage{graphicx} +% \end{macrocode} + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \paragraph{Internal Definitions.} +% +% The package defines a box and several dimension registers: +% +% \begin{macrocode} +\newsavebox{\Gin@box@box} +\newlength{\Gin@box@width} +\newlength{\Gin@box@height} +\newlength{\Gin@box@raise} +\newlength{\Gin@box@hspace} +\newlength{\Gin@box@bwidth} +\newlength{\Gin@box@bheight} +% \end{macrocode} + +% The following macros store the parameters for the present graphics: +% +% \begin{macrocode} +\def\Gin@box@align{b} +\def\Gin@box@hsmash{n} +\def\Gin@box@hshift{0pt} +\def\Gin@box@vshift{0pt} +\def\Gin@box@lmargin{0pt} +\def\Gin@box@rmargin{0pt} +\def\Gin@box@tmargin{0pt} +\def\Gin@box@bmargin{0pt} +\newif\ifGin@box@hide\Gin@box@hidefalse +\newif\ifGin@box@vsmash\Gin@box@vsmashfalse +% \end{macrocode} + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \paragraph{Additional Arguments.} +% +% The optional arguments of |\includegraphics| are parsed by \textsf{keyval} +% which calls the appropriate handlers. We add handlers to introduce additional +% optional arguments: +% +% \begin{macrocode} +\define@key{Gin}{hide}[true]{\lowercase{\Gin@boolkey{#1}}{box@hide}} +\define@key{Gin}{align}[c]{\def\Gin@box@align{#1}} +\define@key{Gin}{hsmash}[c]{\edef\Gin@box@hsmash{#1}} +\define@key{Gin}{vsmash}[c]{\if#1n\Gin@box@vsmashfalse\else% + \Gin@box@vsmashtrue\edef\Gin@box@align{% + \if#1bt\else\if#1tb\else% + \if#1lu\else\if#1ul\else#1\fi\fi\fi\fi\fi}} +\define@key{Gin}{smash}[cc]{\expandafter\KV@Gin@vsmash\@firstoftwo#1% + \expandafter\KV@Gin@hsmash\@secondoftwo#1} +\define@key{Gin}{hshift}{\def\Gin@box@hshift{#1}} +\define@key{Gin}{vshift}{\def\Gin@box@vshift{#1}} +\define@key{Gin}{lmargin}{\def\Gin@box@lmargin{#1}} +\define@key{Gin}{rmargin}{\def\Gin@box@rmargin{#1}} +\define@key{Gin}{tmargin}{\def\Gin@box@tmargin{#1}} +\define@key{Gin}{bmargin}{\def\Gin@box@bmargin{#1}} +\define@key{Gin}{hmargin}{\def\Gin@box@lmargin{#1}\def\Gin@box@rmargin{#1}} +\define@key{Gin}{vmargin}{\def\Gin@box@tmargin{#1}\def\Gin@box@bmargin{#1}} +\define@key{Gin}{margin}{\def\Gin@box@lmargin{#1}\def\Gin@box@rmargin{#1}% + \def\Gin@box@tmargin{#1}\def\Gin@box@bmargin{#1}} +% \end{macrocode} +% +% The options are stored in internal registers for later processing. +% The arguments of |hsmash| and |vsmash| work in the opposite direction +% for conventional alignment of {\LaTeX} boxes. Therefore the parameters +% |t| and |b| as well as |r| and |l| are interchanged. + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \paragraph{Argument Processing.} +% +% Next, we overwrite the function |\Ginclude@graphics| +% called by |\Gin@ii| within |\includegraphics| +% after the optional parameters have been processed +% by |\setkeys{Gin}{...}|: +% \begin{macrocode} +\let\old@box@Ginclude@graphics\Ginclude@graphics +\def\Ginclude@graphics#1{% +% \end{macrocode} +% We first save the graphics into the box |\Gin@box@box| +% and compute its width and height: +% \begin{macrocode} + \sbox{\Gin@box@box}{\old@box@Ginclude@graphics{#1}}% + \settowidth{\Gin@box@width}{\usebox{\Gin@box@box}}% + \settoheight{\Gin@box@height}{\usebox{\Gin@box@box}}% +% \end{macrocode} +% Temporarily define the macros |\gwidth| and |\gheight| +% to represent the width and height of the graphics, respectively: +% \begin{macrocode} + \def\gwidth{\Gin@box@width}% + \def\gheight{\Gin@box@height}% +% \end{macrocode} +% Ignore top and bottom margin if vsmash is active: +% \begin{macrocode} + \ifGin@box@vsmash% + \def\Gin@box@tmargin{0pt}\def\Gin@box@bmargin{0pt}\fi% +% \end{macrocode} +% Compute the vertical box dimensions: +% \begin{macrocode} + \setlength{\Gin@box@raise}{\Gin@box@vshift}% + \setlength{\Gin@box@bheight}{\Gin@box@height}% + \addtolength{\Gin@box@bheight}{\Gin@box@tmargin}% + \addtolength{\Gin@box@bheight}{\Gin@box@bmargin}% + \if\Gin@box@align t% + \addtolength{\Gin@box@raise}{-\Gin@box@height}% + \addtolength{\Gin@box@raise}{1.161290323ex}\fi% + \if\Gin@box@align u% + \addtolength{\Gin@box@raise}{-\Gin@box@height}\fi% + \if\Gin@box@align c% + \addtolength{\Gin@box@raise}{-0.5\Gin@box@height}% + \addtolength{\Gin@box@raise}{0.580645161ex}\fi% + \if\Gin@box@align m% + \addtolength{\Gin@box@raise}{-0.5\Gin@box@height}\fi% +% \end{macrocode} +% Compute the horizontal box dimensions: +% \begin{macrocode} + \setlength{\Gin@box@hspace}{0pt}% + \if\Gin@box@hsmash n% + \setlength{\Gin@box@bwidth}{\Gin@box@width}% + \addtolength{\Gin@box@bwidth}{\Gin@box@lmargin}% + \addtolength{\Gin@box@bwidth}{\Gin@box@rmargin}% + \setlength{\Gin@box@hspace}{\Gin@box@lmargin}% + \else% + \setlength{\Gin@box@bwidth}{0pt}% + \setlength{\Gin@box@hspace}{\Gin@box@hshift}% + \if\Gin@box@hsmash l% + \addtolength{\Gin@box@hspace}{-\Gin@box@width}\fi% + \if\Gin@box@hsmash c% + \addtolength{\Gin@box@hspace}{-0.5\Gin@box@width}\fi% + \fi% +% \end{macrocode} +% Define the vertical box: +% \begin{macrocode} + \ifGin@box@vsmash\expandafter\smash\fi{% + \raisebox{\Gin@box@raise}{% + \parbox[b]{\Gin@box@bwidth}{% + \rule[-\Gin@box@bmargin]{0pt}{\Gin@box@bheight}% + \smash{% +% \end{macrocode} +% Define the horizontal box: +% \begin{macrocode} + \makebox[0pt][l]{% + \hspace*{\Gin@box@hspace}% +% \end{macrocode} +% Print the graphics unless hidden: +% \begin{macrocode} + \ifGin@box@hide\else\usebox{\Gin@box@box}\fi% + }% + }% + }% + }% + }% +} +% \end{macrocode} + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\paragraph{Interaction with class beamer.} +% +% For the class \textsf{beamer} we want to override the overlay mechanism +% to always reserve the space the graphics would occupy. +% Here we have to overwrite the command |\includegraphics|. +% \begin{macrocode} +\@ifclassloaded{beamer}{\ifGin@box@beamer +% \end{macrocode} +% Save the original definition of |\includegraphics| and begin the new one: +% \begin{macrocode} + \let\old@box@includegraphics\includegraphics + \newcommand<>{\fibox@includegraphics}[2][]{\Gin@box@hidefalse% +% \end{macrocode} +% Check whether overlay parameters |<...>| are specified. +% If none, use the counter of the |\pause| mechanism to determine visibility. +% Call |\alt<...>| to set the |hide| argument according to visibility: +% \begin{macrocode} + \beamer@ifempty{#3}% + {\alt<\c@beamerpauses->{}{\Gin@box@hidetrue}}% + {\alt#3{}{\Gin@box@hidetrue}}% +% \end{macrocode} +% Pass on to old definition: +% \begin{macrocode} + \old@box@includegraphics[#1]{#2}} +% \end{macrocode} +% \textsf{beamer} overwrites |\includegraphics| +% at the beginning of the document body. +% We have to overwrite it again discarding +% the changes introduces by \textsf{beamer}: +% \begin{macrocode} + \AtBeginDocument{\let\includegraphics=\fibox@includegraphics} +\fi}{} +% \end{macrocode} +% +%\iffalse +%
+%\fi +% +\endinput +% +%% \CheckSum{3381} diff --git a/Master/texmf-dist/source/latex/graphbox/graphbox.ins b/Master/texmf-dist/source/latex/graphbox/graphbox.ins new file mode 100644 index 00000000000..c477e1c173c --- /dev/null +++ b/Master/texmf-dist/source/latex/graphbox/graphbox.ins @@ -0,0 +1,41 @@ +\def\batchfile{graphbox.ins} +\input docstrip.tex + +\keepsilent +% collref.ins Copyright (C) 2013-2014 Niklas Beisert +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. + +\preamble + +Copyright (C) 2013-2014 Niklas Beisert + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +\endpreamble + +% the style and sample files +\generate{\askforoverwritefalse +\file{graphbox.sty}{\from{graphbox.dtx}{package}} +\file{gboxsamp.tex}{\from{graphbox.dtx}{sample}} +\nopreamble\nopostamble +\file{gboxsamp.mps}{\from{graphbox.dtx}{figure}} +} + +\Msg{***********************************************************************} +\Msg{* Done. Please copy the file graphbox.sty to an appropriate directory *} +\Msg{* of your LaTeX distribution, e.g. texmf-root/tex/latex/graphbox. *} +\Msg{***********************************************************************} +\endinput diff --git a/Master/texmf-dist/tex/latex/graphbox/graphbox.sty b/Master/texmf-dist/tex/latex/graphbox/graphbox.sty new file mode 100644 index 00000000000..2b5d25a577f --- /dev/null +++ b/Master/texmf-dist/tex/latex/graphbox/graphbox.sty @@ -0,0 +1,129 @@ +%% +%% This is file `graphbox.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% graphbox.dtx (with options: `package') +%% +%% Copyright (C) 2013-2014 Niklas Beisert +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +\NeedsTeXFormat{LaTeX2e}[1996/12/01] +\ProvidesPackage{graphbox}[2014/08/31 v1.0 extension for graphicx to adjust containing box] +\newif\ifGin@box@beamer\Gin@box@beamertrue +\DeclareOption{nobeamer}{\Gin@box@beamerfalse} +\ProcessOptions + +\RequirePackage{graphicx} + +\newsavebox{\Gin@box@box} +\newlength{\Gin@box@width} +\newlength{\Gin@box@height} +\newlength{\Gin@box@raise} +\newlength{\Gin@box@hspace} +\newlength{\Gin@box@bwidth} +\newlength{\Gin@box@bheight} + +\def\Gin@box@align{b} +\def\Gin@box@hsmash{n} +\def\Gin@box@hshift{0pt} +\def\Gin@box@vshift{0pt} +\def\Gin@box@lmargin{0pt} +\def\Gin@box@rmargin{0pt} +\def\Gin@box@tmargin{0pt} +\def\Gin@box@bmargin{0pt} +\newif\ifGin@box@hide\Gin@box@hidefalse +\newif\ifGin@box@vsmash\Gin@box@vsmashfalse + +\define@key{Gin}{hide}[true]{\lowercase{\Gin@boolkey{#1}}{box@hide}} +\define@key{Gin}{align}[c]{\def\Gin@box@align{#1}} +\define@key{Gin}{hsmash}[c]{\edef\Gin@box@hsmash{#1}} +\define@key{Gin}{vsmash}[c]{\if#1n\Gin@box@vsmashfalse\else% + \Gin@box@vsmashtrue\edef\Gin@box@align{% + \if#1bt\else\if#1tb\else% + \if#1lu\else\if#1ul\else#1\fi\fi\fi\fi\fi}} +\define@key{Gin}{smash}[cc]{\expandafter\KV@Gin@vsmash\@firstoftwo#1% + \expandafter\KV@Gin@hsmash\@secondoftwo#1} +\define@key{Gin}{hshift}{\def\Gin@box@hshift{#1}} +\define@key{Gin}{vshift}{\def\Gin@box@vshift{#1}} +\define@key{Gin}{lmargin}{\def\Gin@box@lmargin{#1}} +\define@key{Gin}{rmargin}{\def\Gin@box@rmargin{#1}} +\define@key{Gin}{tmargin}{\def\Gin@box@tmargin{#1}} +\define@key{Gin}{bmargin}{\def\Gin@box@bmargin{#1}} +\define@key{Gin}{hmargin}{\def\Gin@box@lmargin{#1}\def\Gin@box@rmargin{#1}} +\define@key{Gin}{vmargin}{\def\Gin@box@tmargin{#1}\def\Gin@box@bmargin{#1}} +\define@key{Gin}{margin}{\def\Gin@box@lmargin{#1}\def\Gin@box@rmargin{#1}% + \def\Gin@box@tmargin{#1}\def\Gin@box@bmargin{#1}} + +\let\old@box@Ginclude@graphics\Ginclude@graphics +\def\Ginclude@graphics#1{% + \sbox{\Gin@box@box}{\old@box@Ginclude@graphics{#1}}% + \settowidth{\Gin@box@width}{\usebox{\Gin@box@box}}% + \settoheight{\Gin@box@height}{\usebox{\Gin@box@box}}% + \def\gwidth{\Gin@box@width}% + \def\gheight{\Gin@box@height}% + \ifGin@box@vsmash% + \def\Gin@box@tmargin{0pt}\def\Gin@box@bmargin{0pt}\fi% + \setlength{\Gin@box@raise}{\Gin@box@vshift}% + \setlength{\Gin@box@bheight}{\Gin@box@height}% + \addtolength{\Gin@box@bheight}{\Gin@box@tmargin}% + \addtolength{\Gin@box@bheight}{\Gin@box@bmargin}% + \if\Gin@box@align t% + \addtolength{\Gin@box@raise}{-\Gin@box@height}% + \addtolength{\Gin@box@raise}{1.161290323ex}\fi% + \if\Gin@box@align u% + \addtolength{\Gin@box@raise}{-\Gin@box@height}\fi% + \if\Gin@box@align c% + \addtolength{\Gin@box@raise}{-0.5\Gin@box@height}% + \addtolength{\Gin@box@raise}{0.580645161ex}\fi% + \if\Gin@box@align m% + \addtolength{\Gin@box@raise}{-0.5\Gin@box@height}\fi% + \setlength{\Gin@box@hspace}{0pt}% + \if\Gin@box@hsmash n% + \setlength{\Gin@box@bwidth}{\Gin@box@width}% + \addtolength{\Gin@box@bwidth}{\Gin@box@lmargin}% + \addtolength{\Gin@box@bwidth}{\Gin@box@rmargin}% + \setlength{\Gin@box@hspace}{\Gin@box@lmargin}% + \else% + \setlength{\Gin@box@bwidth}{0pt}% + \setlength{\Gin@box@hspace}{\Gin@box@hshift}% + \if\Gin@box@hsmash l% + \addtolength{\Gin@box@hspace}{-\Gin@box@width}\fi% + \if\Gin@box@hsmash c% + \addtolength{\Gin@box@hspace}{-0.5\Gin@box@width}\fi% + \fi% + \ifGin@box@vsmash\expandafter\smash\fi{% + \raisebox{\Gin@box@raise}{% + \parbox[b]{\Gin@box@bwidth}{% + \rule[-\Gin@box@bmargin]{0pt}{\Gin@box@bheight}% + \smash{% + \makebox[0pt][l]{% + \hspace*{\Gin@box@hspace}% + \ifGin@box@hide\else\usebox{\Gin@box@box}\fi% + }% + }% + }% + }% + }% +} + +\@ifclassloaded{beamer}{\ifGin@box@beamer + \let\old@box@includegraphics\includegraphics + \newcommand<>{\fibox@includegraphics}[2][]{\Gin@box@hidefalse% + \beamer@ifempty{#3}% + {\alt<\c@beamerpauses->{}{\Gin@box@hidetrue}}% + {\alt#3{}{\Gin@box@hidetrue}}% + \old@box@includegraphics[#1]{#2}} + \AtBeginDocument{\let\includegraphics=\fibox@includegraphics} +\fi}{} +\endinput +%% +%% End of file `graphbox.sty'. diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 74cb49e3578..c103a81aafe 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -229,10 +229,10 @@ my @TLP_working = qw( german germbib germkorr getfiledate getmap getoptk gfsartemisia gfsbaskerville gfsbodoni gfscomplutum gfsdidot gfsneohellenic gfsporson gfssolomos - ghab ghsystem gillcm gillius gincltex ginpenc gitinfo + ghab ghsystem gillcm gillius gincltex ginpenc gitinfo gitinfo2 gloss glossaries gmdoc gmdoc-enhance gmiflink gmp gmutils gmverb gmverse gnuplottex go gost - gradientframe grafcet graphics graphics-pln + gradientframe grafcet graphbox graphics graphics-pln graphicx-psmin graphicxbox graphviz greek-fontenc greek-inputenc greekdates greektex greenpoint grfpaste grid grid-system gridset grundgesetze diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc index 7dcc8639fe1..b18a5a90fd9 100644 --- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc @@ -363,6 +363,7 @@ depend gmdoc-enhance depend gmiflink depend gmutils depend gmverb +depend graphbox depend graphicx-psmin depend graphicxbox depend grfpaste diff --git a/Master/tlpkg/tlpsrc/graphbox.tlpsrc b/Master/tlpkg/tlpsrc/graphbox.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d -- cgit v1.2.3