From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/graphicxbox/graphicxbox.dtx | 174 +++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 macros/latex/contrib/graphicxbox/graphicxbox.dtx (limited to 'macros/latex/contrib/graphicxbox/graphicxbox.dtx') diff --git a/macros/latex/contrib/graphicxbox/graphicxbox.dtx b/macros/latex/contrib/graphicxbox/graphicxbox.dtx new file mode 100644 index 0000000000..cc54460419 --- /dev/null +++ b/macros/latex/contrib/graphicxbox/graphicxbox.dtx @@ -0,0 +1,174 @@ +% \iffalse +%<*copyright> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% aeb_envelope.sty package, 2014-01-10 %% +%% Copyright (C) 2014 D. P. Story %% +%% dpstory@acrotex.net %% +%% storyd@owc.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{graphicxbox} +% [2014/01/10 v1.0 Provides graphic backgrounds for parboxes (dps)] +%<*driver> +\documentclass{ltxdoc} +\usepackage[colorlinks,hyperindex]{hyperref} +\pdfstringdefDisableCommands{\let\\\textbackslash}% +\EnableCrossrefs \CodelineIndex +\OnlyDescription % comment out for implementation details +\begin{document} + \GetFileInfo{graphicxbox.sty} + \title{The \textsf{graphicxbox} Package} + \author{D. P. Story\\ + Email: \texttt{dpstory@acrotex.net}} + \date{processed \today} + \maketitle + \tableofcontents + \let\Email\texttt + \DocInput{graphicxbox.dtx} + \PrintIndex +\end{document} +% +% \fi +% \begin{macrocode} +%<*package> +% \end{macrocode} +%\section{Introduction} +% This is a short package that provides two new commands \cs{graphicxbox} and \cs{fgraphicxbox}, which +% are companion commands to \cs{colorbox} and \cs{fcolorbox} of \textsf{color.dtx}, by D. P. Carlisle. +% The \cs{graphicxbox} inserts a graphical image as a background rather than a background color, +% while \cs{fgraphcxbox} does the same thing, but also draws a colored frame around the box. +% +% This package requires either \textsf{graphicx} or \textsf{graphicxsp} package (the latter calls the first). +% The \textsf{graphicxsp} allows you to embed graphic images once and use them many times, this is ideal for +% this current package. Either of these commands should be loaded before this package. If you are using the +% \textsf{web} package and want to use \textsf{graphicxsp}, you should load \textsf{graphicxsp} before +% the \textsf{web} package. I will not use the \cs{RequirePackage} command to require either of these +% graphics packages, the reason for this is that \textsf{graphicxsp} contains options the user might +% want to access and I don't want to make this package unduly complicated by adding options to this +% package only to pass them to another. +% +%\section{Example files} We provide three sample files with this distribution. +%\begin{enumerate} +%\item \texttt{grfxbox\_tst.tex} illustrates the basic features available to +% all users of \textsf{dvips}, \textsf{dvipsone}, \textsf{pdflatex}, and \textsf{xelatex}. +%\item \texttt{grfxbox\_tst\_sp.tex} same as \texttt{grfxbox\_tst.tex}, but uses \texttt{graphicxsp}. +% The drivers \textsf{dvips} or \textsf{dvipsone} are required, and \textsf{Adobe Distiller} required as the PDF creator. +%\item \texttt{grfxbox\_tst\_indians.tex} uses \texttt{graphicxsp} again, but illustrates transparency. +% Distill the file with \texttt{Standard\_transparency.joboptions} which accompanie the \texttt{graphicsp} package. +%\end{enumerate} +% Though we don't have a \cs{RequirePackage} for the required graphics package, we will test for their +% presence and emit a package error. +% \begin{macrocode} +\@ifpackageloaded{graphicxsp}{} + {% + \@ifpackageloaded{graphicx}{} + {% + \PackageError{graphicxbox}{% + Neither the graphicx nor graphicxsp packages are loaded.}% + {Load the graphicx or graphicxsp package before this one.}% + }% + } +% \end{macrocode} +%\section{Definitions of the two main commands} +% \begin{macro}{\graphicxbox} +% This command provides a background graphic for a box, similar to \cs{colorbox}. +% The syntax is +%\begin{verbatim} +% \graphicxbox[]{}{} +%\end{verbatim} +% When \textsf{graphicx} is loaded (and not \textsf{graphicxsp}) the syntax, in example +% form is +%\begin{verbatim} +% \graphicxbox{mycoolgraphic}{\Huge Hello World!} +%\end{verbatim} +% The first parameter is optional and is passed to the \cs{includegraphics} +% command. Do not use the \texttt{scale}, \texttt{width} or \texttt{height} parameters of +% \cs{includegraphics}. This package uses \texttt{width} and \texttt{height} to set the dimensions +% of the graphic to fit the box. +% +% When \textsf{graphicxsp} (distiller required) is loaded, the optional parameter is used to specify +% the name of the embedded graphic to be used, in this case, the second argument \verb!{}! +% is not used. For example, +% \begin{verbatim} +% \embedEPS{indianblanket}{IndianBlnkt} +% ... +% ... +% \graphicxbox[name=indianblanket]{}{\Huge Hello World!} +%\end{verbatim} +% The \texttt{indianblanket} graphic can be used and reused many time without increasing the file size +% significantly. The other advantage of using the \textsf{graphicxsp} package is that it supports +% transparency. See the demo files that accompany this package. +% \begin{macrocode} +\newcommand{\graphicxbox}[2][]{\graphicx@b@x\relax{#1}{#2}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\fgraphicxbox} +% This command does the same as \cs{graphicxbox}, but additionally, adds a colored +% rule framing the box, similar to what \cs{fcolorbox} does. The syntax is +%\begin{verbatim} +% \fgraphicxbox[]{}[] +% {}{} +%\end{verbatim} +% The first two parameters are the same ones used by \cs{fcolorbox}, the color specification. +% The next three parameters are the same as \cs{graphicxbox}. The comments made above +% for the \cs{graphicxbox} hold here as well. +% +% Here is an example for the \textsf{graphicxsp} package: +%\begin{verbatim} +% \graphicxbox{blue}[name=indianblanket]{}{\Huge Hello World!} +%\end{verbatim} +% +% As with \cs{colorbox} and \cs{fcolorbox}, the lengths \cs{fboxsep} and \cs{fboxrule}. For example, +% if we set +% \begin{verbatim} +% \setlength{\fboxsep}{10pt} +% \setlength{\fboxrule}{2pt} +% \graphicxbox{blue}[name=indianblanket]{}{\Huge Hello World!} +%\end{verbatim} +% we would make the separation between the content and the frame of +% the to be \texttt{10pt} and the rule with to be \texttt{2pt}. +% \begin{macrocode} +\newcommand{\fgraphicxbox}[2][]{\fgraphicx@box{#1}{#2}} +% \end{macrocode} +% \end{macro} +%\section{Internal, supporting commands} +%\DescribeMacro{\fgraphicx@box} continues the flow from \cs{fgraphicxbox}. +% The parameters of \cs{fgraphicx@@box} are +%\begin{verbatim} +% \fgraphicx@box{model}{color spec}[options for graphicx(sp)]{filename} +%\end{verbatim} +% \begin{macrocode} +\def\fgraphicx@box#1#2{\@ifnextchar[{\fgraphicx@@box{#1}{#2}}% + {\fgraphicx@@box{#1}{#2}[]}} +% \end{macrocode} +% \begin{macrocode} +\def\fgraphicx@@box#1#2[#3]#4{% + \graphicx@b@x{\fboxsep\z@\color#1{#2}\fbox}{#3}{#4}} +% \end{macrocode} +% \DescribeMacro{\graphicx@b@x}\cs{graphicx@b@x} is the low-level command that does all the work +% now that the parameters have been set. This code is a modification +% of \cs{color@b@x} from the \textsf{color.dtx} package. +% \begin{macrocode} +\long\def\graphicx@b@x#1#2#3#4{\leavevmode + \setbox\z@\hbox{\kern\fboxsep{\set@color#4}\kern\fboxsep}% + \dimen@\ht\z@\advance\dimen@\fboxsep\ht\z@\dimen@ + \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@ + {%\color@block{\wd\z@}{\ht\z@}{\dp\z@}% +% \dimen@ii\dp\z@\advance\dimen@ii\ht\z@ + \dimen@\dp\z@\advance\dimen@\ht\z@ + \edef\gfxb@totalheight{\the\dimen@}% + {#1{\lower\dp\z@\rlap{% + \includegraphics[#2,width=\wd\z@,height=\gfxb@totalheight]{#3}}% + \box\z@}}}% +} +% +% \end{macrocode} +% \Finale +\endinput -- cgit v1.2.3