7 Inclusion ´ de Graficos ´
7.1.
´ Graficos en LATEX La inclusi´on de gr´aficos en LATEX depende hasta cierto punto de la plataforma de uso, y hace que la inclusi´on de cierto tipo de gr´aficos sea m´as dificultosa que otros. Los formatos m´as recomendables para su uso son el Encapsulated PostScript (EPS) y el formato PostScript (PS). Si usamos PDFLATEX, los formatos m´as comunes son PDF, PNG, JPG o GIF. Los archivos son insertados dentro del fichero LATEX mediante el comando \includegraphics{hnombre del ficheroi}
Para poder usar este comando es preciso cargar el paquete \usepackage{graphicx}
que puede llevar como opci´on alg´un controlador especial que haga posible la inclusi´on de otro tipo de formatos no comunes en LATEX (p.e. ‘emf’, ‘wmf’, etc.). Este tipo de ficheros no son recomendables para trabajar con LATEX.
7.1.1.
El comando \includegraphics La sintaxis de este comando es: \includegraphics[hopcionesi]{hnombre del ficheroi}
Las opciones disponibles para \includegraphics son: width
Anchura del gr´afico (escal´andolo si es necesario).
height
Altura del gr´afico (escal´andolo si es necesario).
scale
Define un factor de escala a aplicar en ambas direcciones.
angle clip
Especifica un a´ ngulo de rotaci´on en grados (en sentido positivo). Es un par´ametro l´ogico. Si se le asigna el valor true el gr´afico ser´a recortado (no escalado) a las dimensiones especificadas. El comando \includegraphics* es equivalente a \includegraphics[clip].
Ejemplos 70
7.1
´ Graficos en LATEX
71
\includegraphics[width=1.5in]{duck.pdf } \includegraphics[width=1in,height=1.5in]{duck.pdf }
\includegraphics[height=1in,angle=45]{duck.pdf \includegraphics } [angle=45,heigth=1in]{duck.pdf }
7.1.2.
´ de graficos ´ Ubicacion Por defecto, LATEX busca los archivos gr´aficos en los directorios predeterminados por TEX. Adem´as, es posible especificar directorios para la b´usqueda de estos archivos mediante el comando \graphicspath. La sintaxis es \graphicspath{{dir1/}{dir2/}}
7.1.3.
´ Extensiones de los ficheros graficos El comando \DeclareGraphicsExtensions le dice a LATEX qu´e extensiones intentar en un archivo en el que no hemos especificado su extensi´on para ser incluido con el comando \includegraphics. Por ejemplo, \DeclareGraphicsExtensions{.eps,.ps,}
si vamos a compilar con LATEX, o \DeclareGraphicsExtensions{.png,.pdf,.jpg,.gif }
si compilamos con PDFLATEX. Con este comando, si aparece una orden del tipo \includegraphics{nombre}
el compilador buscar´a primero el archivo con extensi´on declarada en primer lugar y si no lo encuentra probar´a con las siguientes. Para evitar tener que especificar el tipo de archivo, y poder compilar indistintamente A con LTEX o PDFLATEX, podemos incluir el siguiente c´odigo en un archivo de estilo:
´ de Graficos ´ Inclusion
\newif\ifpdf \ifx\pdfoutput\undefined \pdffalse \else \pdfoutput=1 \pdftrue \fi \ifpdf \usepackage[pdftex]{graphicx} \usepackage[usenames,dvipsnames]{color} \pdfcompresslevel=9 \pdfpageheight=12in \else \usepackage{graphicx} \usepackage[usenames]{color} \fi \ifpdf \DeclareGraphicsExtensions{.png,.jpg,.pdf,.mps,.gif,.bmp} \else \DeclareGraphicsExtensions{.eps,.ps} \fi
7.2.
Rotar y escalar objetos El paquete graphicx incluye otros comandos para manipular objetos como \scalebox{2}{\includegraphics{fichero.ps}} \resizebox{4in}{!}{\includegraphics{fichero.ps}} \rotatebox{45}{\includegraphics{fichero.ps}}
que son equivalentes a \includegraphics[scale=2]{file.eps} \includegraphics[width=4in]{file.eps} \includegraphics[angle=45]{file.eps}
LAT EX
Sin embargo, los primeros son aplicables a objetos que no son necesariamente archivos gr´aficos, como por ejemplo
\rotatebox{45}{\fbox{\Large \textcolor{blue}{\LaTeX}}}
7.3.
LA T EX
72
\rotatebox{145}{\fbox{\Large \textcolor{blue}{\LaTeX}}}
Objetos flotantes La inclusi´on de figuras puede presentar problemas a la hora de ubicarlas en el texto pues al no poder ser divididas no pueden aparecer en cualquier punto del documento. Para resolver este problema, es necesario tratar este tipo de objetos como objetos flotantes, que son situados donde el compilador estima conveniente.
7.4
7.4.
´ de figuras flotantes Creacion
73
´ de figuras flotantes Creacion Las figuras flotantes se crean con el entorno figure, en cuyo interior situamos el correspondiente gr´afico con \includegraphics. La sintaxis del entorno es: \begin{figure}[hposici´oni] \centering \includegraphics{figure.eps} \caption{hPie de la figurai} \label{hetiquetai} \end{figure}
7.4.1.
Caracter´ısticas Los comandos \caption y \label son opcionales y sirven para situar una leyenda para la figura, que aparecer´a numerada. Dicha numeraci´on se asignar´a a la etiqueta \label (ver Cap´ıtulo 11). El comando \label debe se situado inmediatamente despu´es del \caption. Si el comando \caption no aparece se crea una figura sin numerar. El comando \listoffigures (normalmente situado al inicio del documento) genera una lista con todas las figuras incluidas en el documento. El comando \caption puede llevar un argumento opcional que especifica el texto que aparecer´a en la Lista de Figuras. En caso de no aparecer, dicho texto es el mismo que el argumento obligatorio del comando. Por ejemplo, \caption[Texto para la lista]{Pie de la figura}
7.4.2.
Ejemplo
Figura 4 Ejemplo de figura
7.5.
Posicionamiento de Figuras La posici´on en la que la figura aparece en el texto est´a determinada por el argumento opcional que puede ser una (o m´as de una) de las siguientes letras h, t, b, p.
74
´ de Graficos ´ Inclusion
h Sit´ua la figura all´ı donde aparece el entorno. Esta opci´on no puede ser ejecutada siempre, pues es posible que el gr´afico no entre en el espacio de p´agina que reste. t Sit´ua la figura en la parte superior de la p´agina. b Sit´ua la figura en la parte inferior de la p´agina. p Sit´ua la figura en una p´agina separada. Si no se especifica la posici´on, el compilador toma por defecto la secuencia [tbp]. Cuando se incluye una figura flotante, LATEX leer´a la figura y la tendr´a en memoria hasta que encuentre una posici´on que considere adecuada para incluirla en el texto. En ciertos casos es posible que el compilador tenga en memoria un n´umero considerable de objetos sin procesar, que pueden dan lugar a colapsar la compilaci´on y se obtenga un error. Para evitar esta situaci´on (en general, muy improbable) est´an los siguientes comandos \clearpage \FloatBarrier
Este comando proceso todos los objetos sin procesar y comienza una nueva p´agina. Este comando provoca que todos los objetos sin procesar sean procesados, pero a diferencia de \clearpage no comienza una nueva p´agina. Requiere cargar el paquete placeins.
Si cargamos el paquete placeins con la opci´on section, \usepackage[section]{placeins}
se procesan todas las figuras en la secci´on en la que aparecen. La sentencia anterior redefine el comando \section, insertando un \FloatBarrier antes del comienzo de cada secci´on. La opci´on below \usepackage[below]{placeins}
es menos restrictiva, pues permite que los objetos sean situados despu´es del comienzo de una nueva secci´on, siempre que algo de la secci´on anterior aparezca en misma p´agina.
7.6.
El paquete subfigure El paquete subfigure permite introducir figuras con m´as de un gr´afico, y pies de figuras personalizados, como el que sigue: El ejemplo anterior se ha realizado con el c´odigo \begin{figure}[h] \centering \subfigure[Pato de anchura 4cm]{ \includegraphics[width=4cm]{duck} } \subfigure[Pato de anchura 5cm]{ \includegraphics[width=5cm]{duck} } \caption{Varias figuras en una} \end{figure}
7.7
(a) Pato de anchura 4cm
´ del entorno Configuracion
75
(b) Pato de anchura 5cm
Figura 5 Varias figuras en una
7.7.
´ del entorno Configuracion Los siguientes par´ametros son usados por LATEX para prevenir dise˜nos no aceptables en la configuraci´on de p´aginas con figuras.
7.7.1.
´ Contadores de posicion
topnumber
M´aximo n´umero de objetos permitidos en la parte superior de la p´agina (por defecto es 2)
bottomnumber
M´aximo n´umero de objetos permitidos en la parte inferior de la p´agina (por defecto es 1)
totalnumber
M´aximo n´umero de objetos permitidos en cualquier p´agina (por defecto es 3)
Estos contadores previenen contra el posicionamiento de muchos objetos en la misma p´agina de texto. Estos contadores no afectan a las p´aginas de figuras. Si especificamos el par´ametro ! junto con las opciones de posici´on, LATEX ignorar´a estos par´ametros. Para cambiar los valores de estos comandos usamos el comando \setcounter. Por ejemplo, \setcounter{totalnumber}{2}
7.7.2.
´ Afinando un poco mas Tambi´en es posible controlar el porcentaje en una p´agina de texto que va a ser usado por figuras. Los comandos de la tabla siguiente determinan estos porcentajes, que equivalen al cociente entre la altura de los objetos flotantes dividida por \textheight. El uso del par´ametro ! en el argumento opcional de posici´on del objeto hace que LATEX ignore los tres primeros comandos. Para modificar los valores anteriores es preciso el uso del comando \renewcommand del siguiente modo: \renewcommand{\textfraction}{0.3}
76
´ de Graficos ´ Inclusion
\textfraction
M´ınima fracci´on de texto ocupado en una p´agina de texto. El valor por defecto es 0.2.
\topfraction
M´axima fracci´on de una p´agina de texto que puede ser ocupada por objetos flotantes en la parte superior. El valor por defecto es 0.7.
\bottomfraction
M´axima fracci´on de una p´agina de texto que puede ser ocupada por objetos flotantes en la parte inferior. El valor por defecto es 0.3.
\floatpagefraction
M´ınima fracci´on de una p´agina de objetos flotantes que puede ser ocupada por los mismos. El valor por defecto es 0.5, lo que significa que el espacio en blanco en una p´agina de objetos flotantes no puede ser mayor que 1-\floatpagefraction.