diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /usergrps/uktug/baskervi/4_3/graphics.tex |
Initial commit
Diffstat (limited to 'usergrps/uktug/baskervi/4_3/graphics.tex')
-rw-r--r-- | usergrps/uktug/baskervi/4_3/graphics.tex | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/usergrps/uktug/baskervi/4_3/graphics.tex b/usergrps/uktug/baskervi/4_3/graphics.tex new file mode 100644 index 0000000000..33020591aa --- /dev/null +++ b/usergrps/uktug/baskervi/4_3/graphics.tex @@ -0,0 +1,251 @@ +\newenvironment{Show}{\begin{trivlist}\item[]}{\end{trivlist}} +\newcommand{\rcub}{{\ttfamily\upshape\char'175}} +\newcommand{\lcub}{{\ttfamily\upshape\char'173}} +\newcommand\BS{{\ttfamily\upshape\char'134}} +\let\bs\BS +\def\OptArg#1{{\ttfamily[}{\textrm{\emph{#1}}}{\ttfamily]}} +\def\Arg#1{\lcub{\textrm{\emph{#1}}}\rcub} +\def\star{{\ttfamily*}} +\def\PST{\emph{PStricks}} +\def\COMMAND#1{\begin{trivlist}\item[]\tt #1\end{trivlist}} +\title{\LaTeXe\ standard graphics and colour support} +\author[David Carlisle and Sebastian Rahtz]{% + David Carlisle\\ +\texttt{carlisle@cs.man.ac.uk}\\ + Sebastian Rahtz\\ +\texttt{spqr@ftp.tex.ac.uk} +} +\begin{Article} +\MakeShortVerb{|} +\section{Introduction} +With the release of \LaTeXe, graphics file inclusion, rotation, +scaling and colour macros are now a standard part of the system +(though implemented as two separate packages). These are, of course, +dependent on the abilities of the driver in use, as they are all +implemented by using |\special| commands; it is hoped that until (if +ever?) a common |\special| format is agreed upon, the standardized +interface will make life easier for authors. This article +\emph{briefly} describes the facilities of the new packages, but for +the full glory readers are advised to book for the July training +meeting which covers this area. + +Both these packages are now available on CTAN\footnote{Subscribers to + the Mac or DOS disk packages from \ukt\ will receive copies during + June with the first full release of \LaTeXe.} in +|macros/latex2e/packages/graphics|, but users are warned that +documentation is incomplete, and that the \emph{internal} interface is +still open to change. Making the packages available is simple; if we +start our document: +\begin{verbatim} +\documentclass[dvips]{article} +\usepackage{graphics} +\usepackage{color} +\end{verbatim} +\noindent we load both packages, and the global option `dvips' is +passed to them, indicating which driver we are using (most common +drivers are supported). + +\section{The graphics package} + +\subsection{Rotation} +Any \TeX\ box can be rotated with the command +\COMMAND{\bs rotatebox\Arg{angle}\Arg{text}} +\noindent where \emph{angle} degrees is measured anti-clockwise. +Normally the rotation is about the left-hand end of the baseline of +\emph{text}, but more complex examples are possible. A simple example +of rotation is +\begin{verbatim} +I like \rotatebox{45}{cats} but +I cannot bear \rotatebox{-45}{dogs} +\end{verbatim} +which produces: I like \rotatebox{45}{cats} but +I cannot bear \rotatebox{-45}{dogs}; note that the right amount of +space is left for the rotated material. + +\subsection{Scaling} +A box can be resized in two ways, by scale or by specifying the +desired size. The first is achieved with +\COMMAND{\bs scalebox\Arg{h-scale}\OptArg{v-scale}\Arg{text}} +\noindent If \emph{v-scale} is +omitted, the vertical scale factor is the same as the horizontal one. +Thus \verb|\scalebox{2}[.5]{Cats}| produces \scalebox{2}[.5]{Cats}. + +Scaling to size is done with +\COMMAND{\bs resizebox\star\Arg{h-length}\Arg{v-length}\Arg{text}} +\noindent which resizes \emph{text} so that the width is +\emph{h-length}. If |!| (exclamation mark) is used as either length +argument, the other argument is used to determine a scale factor that +is used in both directions. Normally \emph{v-length} refers to the +height of the box, but in the starred form, it refers to the `height + +depth'. As normal in \LaTeXe, box length arguments, |\height|, +|\width|, |\totalheight|, |\depth| may be used to refer to the +original size of the box. The cats can be resized again using +\verb|\resizebox{1in}{0.2in}{Cats}| to produce +\resizebox{1in}{0.2in}{Cats}. + +The user should be aware that these scaling operations are done by the +\emph{driver}, and it is likely that bitmap fonts will be scaled, +instead of a new size being selected from scratch. + +\subsection{Graphics inclusion} +The basic command to include a graphics file is: +\COMMAND{\bs includegraphics\star\OptArg{llx,lly}\OptArg{urx,ury}\Arg{file}} +If \star\ is present, then the graphic is `clipped' to the size +specified. If \star\ is omitted, then any part of the graphic that is +outside the specified `bounding box' will over-print the surrounding +text. + +If the optional arguments are omitted, then the size of the graphic +will be determined by reading the graphic file itself, if possible. +If \OptArg{urx,ury} is present, then it should specify the coordinates +of the top right corner of the image, as a pair of \TeX\ dimensions. +If the units are ommited they default to |bp|. So |[1in,1in]| and +|[72,72]| are equivalent. If only one optional argument appears, the +lower left corner of the image is assumed to be at |[0,0]|. Otherwise +\OptArg{llx,lly} may be used to specify the cordinates of this point. + +The package works by examining the suffix of the file name and looking +that up in a rule-table, which tells it whether or not the file can be +read for a size, how to do so, and what driver-specific macro to call +for the type of file. This allows extensible support for whatever +bitmap or vector graphic file types the driver can work with. The +interested reader should consult the documentation for the interface +to this system. + +A combination of features in the graphics package allows us to rotate +a scaled portion of a figure: +\begin{verbatim} +\rotatebox{45}{% + \resizebox{1.5cm}{4cm}{% + \includegraphics*% + [100,100][500,600]{% + golfer.ps}% + }% +} +\end{verbatim} +\noindent which produces \rotatebox{45}{% + \resizebox{1.5cm}{4cm}{% + \includegraphics[bbllx=100,bblly=100,bburx=500,bbury=600,clip]{% + golfer}% + }% +} + +Those users familiar with the \emph{(e)psfig} package can use an +extended form of the graphics package (provisionally entitled +\texttt{graphicx}) which offers a full `key=value' interface to all +the commands described above, using the generic \texttt{keyval} parser +by David Carlisle described elsewhere in this issue of \BV. A small +wrapper package (\texttt{epsfig}) provides an exact emulation of +\texttt{psfig} (and Rokicki's \texttt{epsf} macros) for those with +existing documents marked up in this way. + +\section{The colour package} +The \LaTeXe\ colour support offers a variety of facilities: +\begin{itemize} +\item colouring text; +\item colouring box backgrounds; +\item setting the page colour; +\item defining new colour names +\end{itemize} + +\subsection{Using colours} +There are two text colouring commands, which work in the same was as the normal +font-changing macros. The first one is a \emph{command}: + +\COMMAND{\bs + textcolor\lcub\textit{<colourname>}\rcub\lcub\textit{<text>}\rcub} + +\noindent This takes an argument enclosed in brackets and writes it in +the selected colour. This can be used for local colour +changes, since it restores the original colour state when it is +completed, \eg + +\begin{verbatim} +This will be in black +\textcolor{Blue}{This text will be in blue} +and this reverts to black +\end{verbatim} + +\noindent The second colour macro is a \emph{declaration}: + +\COMMAND{\bs{}color\lcub\textit{<colourname>}\rcub} + +\noindent This colour macro takes only one argument and simply sets a +new colour at this point, \eg + +\begin{verbatim} +\color{red} All the following text + will be red. +\color{black} Set the text colour + to black again. +\end{verbatim} + +The colour declaration does of course respect normal \TeX\ grouping; +if we write +\begin{verbatim} +We start in black, but now +{\color{red} all text +is in red, {\color{green} but this +should be in green} and this +should be back in red.} +And we finish in black +\end{verbatim} +we will see\footnote{The examples of colour like this will +be set using gray scales.} +\begin{Show} +We start in black, but now +{\color{red} all text +is in red, {\color{green} but this +should be in green} and this +should be back in red.} +And we finish in black +\end{Show} +The \emph{background} of a normal LR \TeX\ box can also be coloured: +\COMMAND{\bs{}colorbox\lcub\textit{<colourname>}\rcub\lcub\textit{<text>}\rcub} +\noindent This takes the same argument forms as |\textcolor|, but the +colour specifies the background colour of the box. + +There is an extended form: +\COMMAND{\bs{}fcolorbox\lcub\textit{<colourname>}\rcub\lcub\textit{<colourname>}\rcub\lcub\textit{<text>}\rcub} +\noindent This has an extra \emph{colourname} argument, and puts a +frame of the first colour around a box with a background specified by +the second colour. + +The line width and the offset of the frame from the text are controlled +by the standard |\fboxsep| and |\fboxrule| lengths. + +\TeX\ does not have internal support for colour attributes of text, +and \TeX\ `grouping' across pages, floats, footnotes etc will not +always yield the expected results. However, \LaTeXe\ has extended +support to cope with most situations, and it is hoped that more driver +support will make this even better. + +\subsection{Defining new colours} +The colour names `white', `black', `red', `green', `blue', `cyan', +`magenta' and `yellow' are predefined by all driver files. New colour +names can be defined with: +\COMMAND{\bs{}definecolor\lcub\textit{<name>}\rcub\lcub\textit{<model>}\rcub\lcub\textit{<spec>}\rcub} +\noindent where \emph{spec} is usually a list of comma-separated numbers needed +by the \emph{model}. Typically, drivers can cope with the models +\emph{gray}, \emph{rgb} and \emph{cmyk} (although the system is +extensible), allowing, \eg: +\begin{verbatim} +\definecolor{lightgrey}{gray}{.25} +\definecolor{cornflowerblue}{rgb}{.39,.58,.93} +\definecolor{GreenYellow}{cmyk}{0.15,0,0.69,0} +\end{verbatim} +It is also possible to use the |\textcolor| and |\color| macros with +an explicit colour model and specifications, to avoid the overhead of +defining new colors. + +One of the important concepts inherited from James Hafner's |colordvi| +macros is the allowance for a layer of colour `names' above the actual +specification given to the printer; Hafner worked out a set of 68 CMYK +colours which correspond to a common set of Crayola crayons; these +are predefined in the header files used by \emph{dvips}, and the user +calls them \emph{by name}, allowing for tuning of the header files for +a particular printer without changing the source. This system is +provided by the \LaTeXe\ colour package for those drivers which +support it, and its use is strongly recommended. +\end{Article} +\endinput |