Anda di halaman 1dari 20

Latex Avanzado

Paquetes y herramientas para gracos


Dept. dInform`atica
Universitat de Val`encia

Indice
1. Introduccion 1
2. xymatrix 1
3. Metapost 8
3.1. Metapost y Latex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2. Metapost y pdatex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3. Ejemplos y ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4. Dia 20
5. JFig y g2dev 20
6. eps2pdf 20
1. Introduccion
En este documento se presenta el paquete xymatrix que se puede utilizar para generar diagramas
directamente en el chero tex.
Tambien se presenta una seleccion de herramientas (Metapost, JFig, Dia, eps2pdf, g2dev) que se
pueden utilizar para generar gracos o convertir entre diferentes formatos.
2. xymatrix
xymatrix es un paquete que se puede utilizar para dibujar diagramas cuyos elementos se puedan
colocar en las celdas de una matriz.
Para indicar que se desea utilizar este paquete hay que poner este preambulo (para trabajar con
pdatex).
Pagina: 1
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
\ documentcl ass [ a4paper , spani sh , 11 pt ] { a r t i c l e }
\ usepackage [ pdf t ex ] { graphi cx }
\ usepackage [ pdf t ex ] { c ol or }
% Para t r abaj ar con l at e x comentar l a s dos a nt e r i o r e s y descomentar e s t as
%\usepackage [ dvi ps ] { gr aphi cs }
%\usepackage [ dvi ps ] { c ol or }
\ usepackage {amsmath}
% Para t r abaj ar con acent os
\ usepackage [ l a t i n1 ] { i nputenc }
\ usepackage [ s pani s h ] { babel }
\ usepackage [ a l l ] { xy}
\ begi n{document}
\xymatri x { . . . }
\end{document}
Una matriz se puede insertar dentro de una ecuacion utilizando el entorno matrix.
Ejemplo
Una matriz en Latex
a b
c d
\[
\ begi n{bmatri x}
a & b \\
c & d
\end{bmatri x}
\]
Aquellos diagramas que tengan una estructura similar a una matriz se pueden dibujar utilizando el
comando xymatrix. Una modicacion del ejemplo anterior para unir con echas los cuatro elementos
sera:
Ejemplo
Un primer ejemplo de diagrama
a

b

\xymatri x{
a \ ar [ r ] & b \ ar [ d ] \ \
c \ ar [ u] & d \ ar [ l ]
}
Pagina: 2
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
donde \ar[] indica que se desea dibujar una echa y el argumento entre corchetes indica la direccion
en la que se debe dibujar.
Caracter Signicado
r una columna hacia la derecha (right)
l una columna hacia la izquierda (left)
u una la hacia arriba (up)
d una la hacia abajo (down)
Estas direcciones se pueden combinar, as ru signicara hacia arriba y hacia la derecha. Estas
direcciones deben apuntar a elementos que existan en la matriz.
Ejercicio 1
Realiza un documento que contenga la siguiente gura:
a

b

c
>
>
>
>
>
>
>
>
El estilo de la echa se puede cambiar utilizando \ar@estilo[]
Ejemplo
Estilos de las echas

@
@
@
@
@
@
@
@
@
@
@
@
@
@

_
_
_
_

@
@
@
@
@
@
@

~
~
~
~

\xymatri x{
{\ bul l e t } \ ar@{=>}[ dr ] & & {\ bul l e t } \ ar@{>}[ dr ] & & {\ bul l e t } \ ar@{}[ dr ] & \\
& {\ bul l e t } \ ar@{: >}[ ur ] & & {\ bul l e t } \ ar@{>}[ ur ] & & {\ bul l e t }
}
Ejercicio 2
A nade al documento anterior la gura:
Pagina: 3
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
a

b

O
O
O
c
>
>
>
>
Si se desean poner etiquetas a las echas se puede hacer del siguiente modo:
Ejemplo
Etiquetas sobre las echas
a
f

b
g

c
i

d
h

\xymatri x{
a \ ar [ r ] f & b \ ar [ d] g \\
c \ ar [ u] i & d \ ar [ l ] h
}
Ejercicio 3
A nade al documento anterior la gura:
a
T

b
G

O
O
O
c
>
>
>
>
Tambien es posible que la etiqueta no este por encima o por debajo (o a la izquierda o derecha si
la echa es vertical) sino que este en medio, para ello hay que indicar que se debe producir un corte.
Ejemplo
Etiquetas partiendo las echas
Pagina: 4
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
a f

b
g

c
i

d
h

\xymatri x{
a \ ar [ r ] | { f } & b \ ar [ d] g \\
c \ ar [ u] i & d \ ar [ l ] h
}
Las echas no tienen porque ser rectas, se pueden dibujar con curvatura.
Ejemplo
Flechas curvas
@/^/ A

B \xymatrix{A \ar@/^/[r] & B}
@/_/ A B \xymatrix{A \ar@/_/[r] & B}
@/_1mm/ A

B \xymatrix{A \ar@/_1mm/[r] & B}


@(out,in) A

B \xymatrix{A \ar@(u,u)[r] & B}


@(out,in) A

B \xymatrix{A \ar@(d,l)[r] & B}
Ejercicio 4
A nade al documento anterior la gura:
a
T

b
G
.
c
R

Se puede decorar el texto con rectangulos, circunferencias, se puede hacer que el objeto sea mayor
o menor...
La sintaxis es *{modificador}{elemento}
Pagina: 5
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
+ Aumenta un poco el tama no. Se puede especicar la cantidad utilizando +<cantidad>
+= Hace que el tama no del objeto sea cuadrado aumentando la dimension menor. -= hace que
se disminuya la mayor de las dimensiones.
[F] Pone un rectangulo alrededor del texto.
[F=] Pone un rectangulo con linea doble alrededor del texto.
[F.] Pone un rectangulo punteado alrededor del texto.
[F--] Pone un rectangulo con lnea discontinua alrededor del texto.
[F-,] Pone un rectangulo sombreado alrededor del texto.
[o][F] Pone una circunferencia alrededor del texto.
Ejemplo
Decoraciones
+
A

B \xymatrix{*+<5em>{A} \ar[r] & B}
[F]
A

B \xymatrix{*[F]{A} \ar[r] & B}
[F]
A

B \xymatrix{*+[F]{A} \ar[r] & B}
[F]
A

B \xymatrix{*+<1cm>[F]{A} \ar[r] & B}
[F-,]
A

B \xymatrix{*+<1cm>[F]{A} \ar[r] & B}
[o][F]
GFED @ABC
A

B \xymatrix{*+[o][F]{A} \ar[r] & B}
El texto que aparece esta en formato de matematicas (que es conveniente para poner variables o
expresiones matematicas pero no es conveniente para poner palabras o frases). Cuando sea necesario
poner palabras se puede utilizar el comando \txt lo mismo es aplicable a las etiquetas que aparecen
en las echas.
Ejemplo
Palabras o frases como elementos
Pagina: 6
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
Estoestexto

B \xymatrix{*+[F]{Esto es texto} \ar[r] & B}
Esto es texto

B \xymatrix{*+[F]\txt{Esto es texto} \ar[r] & B}
Esto es texto

B \xymatrix{*+[F]{\scriptsize \txt{Esto es texto}} \ar[r] & B}
Al utilizar el comando \xymatrix se pueden pasar argumentos que se aplicaran a todos los elemen-
tos de ese diagrama. Por ejemplo, es posible denir que todos los elementos se separen una determinada
cantidad, es posible denir cual debe ser el espaciado entre las o columnas, o que no se tenga en
cuenta el tama no de los elementos,...
\xymatrix @=1cm separa todos los elementos en un centmetro.
\xymatrix @R=1cm separa las las en un centmetro.
\xymatrix @C=1cm separa las columnas en un centmetro.
Si antes de utilizar \xymatrix ponemos \entrymodifiers={modificadores} provoca que todos
los elementos incluyan el modicador indicado. Por ejemplo \entrymodifiers={++[o][F-]}
provoca que todas los elementos aparezcan rodeados con un crculo.
Ejemplo
Decoraciones en todos los elementos

Filtro pasa baja



Imagen original

Imagen desenfocada

\ begi n{ c e nt e r }
\ e nt r ymodi f i e r s ={++[F] }
\xymatrix@=1cm{
\ i nc l ude gr aphi c s [ wi dth=4cm] { i magenes /im1 . png } \ ar [ r ] & \ t xt { Fi l t r o pasa baj a } \ ar [ r ] &
\ i nc l ude gr aphi c s [ wi dth=4cm] { i magenes /im2 . png } \\
\ t xt {\ s c r i p t s i z e \em Imagen o r i g i n a l } \ ar [ u] & {} & \ t xt {\ s c r i p t s i z e \em Imagen
desenf ocada } \ ar [ u ]
}
\end{ c e nt e r }
Pagina: 7
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
Ejercicio 5
A nade al documento anterior las guras:
DNA
Transcripcion

RNA
Traslacion

Protenas
x
2

x
3
3
+ C
.
D

Fichero tex
latex
.r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
pdatex

Fichero dvi
dvips

Fichero pdf
Fichero ps
ps2pdf

Fichero pdf
3. Metapost
Metapost es un lenguaje de programacion de gracos desarrollado por John Hobby en los labo-
ratorios Bell que permite producir gracos de alta calidad. Esta basado en en Metafont de Donald
Knuth, pero genera una salida PostScript.
Las guras se almacenan en un chero (habitualmente con extension mp). La estructura de este
chero se muestra a continuacion:
be g i nf i g ( 1)
I ns t r uc c i one s para gener ar l a f i g ur a 1
Pagina: 8
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
e ndf i g ;
be g i nf i g ( 2)
I ns t r uc c i one s para gener ar l a f i g ur a 2
e ndf i g ;
. . .
be g i nf i g ( n)
I ns t r uc c i one s para gener ar l a f i g ur a n
e ndf i g ;
end ;
Supongamos que nuestro chero con las guras se llama figuras.mp.
Este chero debe ser procesado mediante la utilidad mpost (incluida con la distribucion de Miktex).
La instruccion sera:
mpost figuras.mp
Este procesado consiste en la generacion de un chero en formato PostScript (que no contiene las
fuentes) por cada una de las guras que haba en el chero original. As si el chero anterior se llama
figuras.mp se generaran los chero figuras.1, ... , figuras.n siendo n el n umero de guras.
3.1. Metapost y Latex
Las guras generadas tras ejecutar mpost se pueden utilizar en un documento latex tal y como
muestra el siguiente codigo:
\ documentcl ass [ a4paper , spani sh , 11 pt ] { a r t i c l e }
\ usepackage [ dvi ps ] { gr aphi cs }
\ usepackage {amsmath}
% Para t r abaj ar con acent os
\ usepackage [ l a t i n1 ] { i nputenc }
\ usepackage [ s pani s h ] { babel }
\ begi n{document}
\ i nc l ude gr aphi c s {i magenes / f i g ur a . 1}
\end{document}
para ser procesado mediante Latex.
3.2. Metapost y pdatex
Si en lugar de utilizar Latex se esta interesado en utilizar pdatex hay que realizar los siguientes
pasos:
Pagina: 9
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
1. Cambiar los nombres de los cheros figuras.numero por nombrefiguras.mps
En el ejemplo anterior se podra cambiar el nombre figuras.1 por figuras1.mps.
2. Incluir la gura en el documento, por ejemplo:
\ documentcl ass [ a4paper , spani sh , 11 pt ] { a r t i c l e }
\ usepackage [ pdf t ex ] { graphi cx }
\ usepackage {amsmath}
% Para t r abaj ar con acent os
\ usepackage [ l a t i n1 ] { i nputenc }
\ usepackage [ s pani s h ] { babel }
\ begi n{document}
. . .
\ i nc l ude gr aphi c s [ nombref i guras . mps ]
. . .
\end{document}
El cambio de la extension del chero es importante ya que cuando pdatex encuentra un chero
con extension mps lo convierte automaticamente a un formato compatible con PDF. Si no se hace esto
las guras no se visualizaran.
Este cambio de extension nos ahorra realizar la conversion por nuestra cuenta (que se puede realizar
utilizando la aplicacion mptopdf).
3.3. Ejemplos y ejercicios
Ejemplo
Un ejemplo de dibujo en Metapost
be g i nf i g ( 1)
draw ( 0 , 0 ) (10,0) (10,10) (0,10) (0,0) ;
e ndf i g ;
end ;
Supongamos que el texto del ejemplo se guarda en un chero llamado figura.mp. Este chero se
puede procesar utilizando la utilidad mpost:
mpost figura.mp
generandose dos cheros:
figura.1 que contiene la gura en formato PostScript y
figura.log que contiene informacion sobre el proceso realizado.
Pagina: 10
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
La ruta denida por los puntos
( 0 , 0) (10,0) (10,10) (0,10) (0,0)
se puede almacenar en una variable de forma que puede ser utilizada posteriormente, esta variable
es de tipo path.
Ejemplo
Utilizacion de una variable para almacenar una ruta
be g i nf i g ( 2)
path p ;
p = ( 0 , 0) (10,0) (10,10) (0,10)c yc l e ;
draw p ;
e ndf i g ;
Ejemplo
Desplazamiento de una gura
be g i nf i g ( 3)
path p ;
p = ( 0 , 0) (10,0) (10,10) (0,10)c yc l e ;
draw p ;
draw p s hi f t e d ( 10 , 0) ;
e ndf i g ;
Ejemplo
Rotacion de una gura
be g i nf i g ( 4)
path p ;
p = ( 0 , 0) (10,0) (10,10) (0,10)c yc l e ;
f o r x=10 s t ep 10 unt i l 360:
draw p r ot at ed x ;
endf or ;
e ndf i g ;
Pagina: 11
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
Ejemplo
Desplazamiento y rotacion de una gura
be g i nf i g ( 5)
path p ;
p = ( 0 , 0) (10,0) (10,10) (0,10)c yc l e ;
f o r x=5 s t ep 5 unt i l 360:
draw p r ot at ed x s hi f t e d ( x , 0 ) ;
endf or ;
e ndf i g ;
Ejercicio 6
Realiza lo mismo que en los 5 ejemplos anteriores cambiando el cuadrado por la forma cuyas
coordenadas se muestran a continuacion:
(0,0) (10,0)
(15,5)
(10,10)
(0,10)
(5,5)
Guarda las guras en un unico chero con nombre figuras.mp. Procesa este chero con la aplica-
cion mpost. Se generaran 5 cheros figuras.1, ..., figuras.5. Cambia el nombre a las guras tal y
como se ha explicado anteriormente e incl uyelas en un documento que se procese mediante pdatex.
Ejemplo
Desplazamiento de una gura rellena con color variable
Pagina: 12
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
be g i nf i g ( 6)
path p ;
p = ( 0 , 0) (5,0) (5,10) (0,10)c yc l e ;
f o r x=0 s t ep 0 . 0 2 5 unt i l 1 :
show x200;
f i l l p s hi f t e d ( x200 , 0) wi t hc ol or x red
+ (1x) bl ue ;
endf or ;
e ndf i g ;
Ejemplo
Escalado y rotacion de una gura rellena
be g i nf i g ( 7)
path p ;
p = ( 0 , 0) (10,0) (10,10) (0,10)c yc l e ;
f o r x=30 s t ep 30 unt i l 360:
f i l l p s c al e d 2 r ot at ed x wi t hc ol or 0 . 6 red ;
endf or ;
f i l l f u l l c i r c l e s c al e d 1cm wi t hc ol or whi te ;
e ndf i g ;
Hemos visto que la variable path almacena una ruta. Hay otros tipos de variables que almacenan
otros tipos de datos, por citar algunos:
numeric para almacenar un valor numerico.
pair para almacenar un punto con coordenadas x e y.
color para almacenar un color.
string para almacenar texto.
picture para almacenar la gura.
Ejemplo
Uso de la variable pair
Pagina: 13
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
be g i nf i g ( 8)
pai r pa , pb ;
pai r pc , pd ;
pa : =( 10 , 10) ;
pb: =( 40 , 40) ;
draw pa pb ;
draw pa wi thpen pe nc i r c l e s c al e d 4 bp ;
draw pb wi thpen pe nc i r c l e s c al e d 4 bp ;
pc : =( 10 , 40) ;
pd: =( 40 , 10) ;
draw pc pd ;
draw pc wi thpen pe nc i r c l e s c al e d 4 bp ;
draw pd wi thpen pe nc i r c l e s c al e d 4 bp ;
e ndf i g ;
La ruta entre puntos puede ser curva.
Ejemplo
Rutas curvas y puntos de interseccion
be g i nf i g ( 9)
pai r pa , pb ;
pai r pc , pd ;
pa : =( 10 , 10) ;
pb: =( 40 , 40) ;
path l i ne aa ;
l i ne aa : = pa{ di r =20}. . pb ;
draw l i ne aa ;
draw pa wi thpen pe nc i r c l e s c al e d 4 bp ;
draw pb wi thpen pe nc i r c l e s c al e d 4 bp ;
pc : =( 10 , 40) ;
pd: =( 40 , 10) ;
path l i ne ab ;
l i ne ab : = pc{ di r =70}.. pd ;
draw l i ne ab ;
draw pc wi thpen pe nc i r c l e s c al e d 4 bp ;
draw pd wi thpen pe nc i r c l e s c al e d 4 bp ;
draw l i ne aa i nt e r s e c t i o npo i nt l i ne ab wi thpen
pe nc i r c l e s c al e d 4 bp wi t hc ol or 0 . 7 red ;
e ndf i g ;
Pagina: 14
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
Es posible a nadir texto utilizando label. Si se desea poner un punto y una etiqueta se puede
utilizar dotlabel.
Se puede controlar la posicion en la que aparecera el texto respecto a la posicion utilizando:
dotlabel.pos("texto",punto)
o,
label.pos("texto",punto)
donde pos puede ser:
top Sobre el punto
bot Debajo del punto
rt A la derecha del punto
lft A la izquierda del punto
urt Sobre el punto a la derecha
lrt Bajo el punto a la derecha
ulft Sobre el punto a la izquierda
llft Bajo el punto a la izquierda
Si se desea tener control sobre el texto se puede poner entre btex y etex (que son abreviaturas de
begintex y endtex respectivamente). Por ejemplo para poner

2 a la derecha del punto (0, 0) se puede
hacer lo siguiente:
label.rt(btex $\sqrt 2$ etex, (0,0))
Ejemplo
Etiquetas, echas y punto medio
Pagina: 15
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
be g i nf i g ( 10)
de f a ul t f o nt : = t i r ;
de f a ul t s c a l e : = 12 pt / f o nt s i z e ( de f a ul t f o nt ) ;
pai r pa , pb ;
pai r med, e t i q ;
pa : =( 10 , 10) ;
pb: =(200 , 20) ;
path l i ne aa ;
l i ne aa : = pa . . c o nt r o l s ( 40 , 40) and ( 150 , 5) . .
pb ;
draw l i ne aa ;
% Punto medio
med : = poi nt 1/2 l engt h ( l i ne aa ) of l i ne aa ;
dot l abe l . top (A , pa ) ;
dot l abe l . top (B , pb) ;
e t i q : = ( xpart med, 60) ;
drawarrow et i q med;
l a be l . top ( Punto medio , e t i q ) ;
e ndf i g ;
A
B
Punto medio
Ejercicio 7
Realiza la siguiente gura:
a
b

(a
2
+ b
2
)
Metapost es capaz de encontrar la interseccion entre dos caminos cerrados.
Pagina: 16
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
Ejemplo
Interseccion entre rutas
be g i nf i g ( 11)
u:=2cm;
path c [ ] ;
c [ 1 ] : = f u l l c i r c l e s c al e d u ;
c [ 2 ] : = c [ 1 ] s hi f t e d ( 0 , . 5 u) ;
draw c [ 1 ] dashed evenl y ;
draw c [ 2 ] dashed evenl y ;
draw bui l dc yc l e ( c [ 1 ] , c [ 2 ] ) wi thpen pe nc i r c l e
s c al e d 1 bp ;
e ndf i g ;
Ejercicio 8
Realiza la siguiente gura:
Tambien es posible trabajar con funciones. En el ejemplo siguiente se dibuja la funcion
1
x
+ 0,56 ln(x)
en el rango de valores x [0,15, 10] utilizando un incremento de 0,1. Ademas se encuentra el mnimo
de la funcion y se dibujan los ejes utilizando smbolos matematicos.
Ejemplo (Complejo)
Funciones
Pagina: 17
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
be g i nf i g ( 12) ;
de f a ul t f o nt : = t i r ;
de f a ul t s c a l e : = 18 pt / f o nt s i z e ( de f a ul t f o nt ) ;
numeri c xmin , xmax , ymin , ymax ;
xmin : = 0 . 1 5 ; xmax : = 1 0 ; ymax : = 1/ xmin ;
u : = 1cm;
% De f i ni c i on de l a f unci on l n
var def l n ( expr x) = ( mlog ( x) /256) enddef ;
% De f i ni c i on de l a f unci on f
var def f ( expr x) = 1/x + 0. 56 l n ( x) enddef ;
xi nc : = 0 . 1 ;
path p t s f ;
% Esto cons t r uye e l path de l a curva ( s e u t i l i z a l a f unci on f )
p t s f : = ( xmin , f ( xmin) ) u
f o r x=xmin+xi nc s t ep xi nc unt i l xmax+xi nc :
. . ( x , f ( x) ) u
endf or ;
draw p t s f ;
% Esto s i r v e para encont r ar e l minimo de l a f unci on
numeri c minx , miny , val y ;
minx = xmin ;
miny = f ( xmin) ;
f o r x=xmin+xi nc s t ep xi nc unt i l xmax+xi nc :
val y : = f ( x) ;
i f ( val y < miny) :
minx : = x ;
miny : = val y ;
f i ;
endf or ;
pai r minimo , i n i c i a l , f i n a l ;
minimo : = ( minx , miny) u ;
i n i c i a l = ( xmin , f ( xmin) ) u ;
f i n a l = (xmax , f (xmax) ) u ;
draw minimo wi thpen pe nc i r c l e s c al e d 3 pt wi t hc ol or 0 . 3 whi te ;
draw i n i c i a l wi thpen pe nc i r c l e s c al e d 3 pt wi t hc ol or 0 . 3 whi te ;
draw f i n a l wi thpen pe nc i r c l e s c al e d 3 pt wi t hc ol or 0 . 3 whi te ;
path hl i ne , vl i ne ;
hl i ne = ( 0 , 0) u (xmax , 0 ) u ;
vl i ne = ( 0 , 0) u (0,ymax) u ;
draw hl i ne ;
draw vl i ne ;
l a be l . bot ( btex $\lambda$ etex , ( 0 . 9 xmax , 0 ) u) ;
l a be l . l f t ( btex $d( I o , I L (\ lambda ) ) $ et ex r ot at ed 9 0 , ( 0 , 0 . 6 ymax) u) ;
draw ( xpart minimo,u/10) ( xpart minimo , u/10) ;
l a be l . bot ( btex $\lambda o$ etex , ( xpart minimo , 0 ) ) ;
draw ( u/10 , ypart minimo ) (u/10 , ypart minimo ) ;
l a be l . l f t ( btex $d o$ etex , ( 0 , ypart minimo ) ) ;
e ndf i g ;
Pagina: 18
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia

d
(
I
o
,
I
L
(

)
)

o
d
o
Tambien es posible dibujar un graco a partir de una tabla de datos. Para ello hay que importar
el chero graph.mp e indicar el chero que contiene los datos.
Ejemplo
Gracas de datos
Supongamos un chero datos.dat que contiene pares de puntos del tipo (x
n
, sin(x
n
)) en cada la.
Para representarlos se puede hacer lo siguiente:
i nput graph ;
be g i nf i g ( 13) ;
draw begi ngraph (8cm, 4cm) ;
gl abe l . l f t ( btex \ vbox{\hbox{$y$ }} etex , OUT) ;
gl abe l . bot ( btex \ vbox{\hbox{$x$ }} etex , OUT) ;
gdraw datos . dat wi thpen pe nc i r c l e s c al e d 1 pt wi t hc ol or 0 . 4 whi te ;
gl abe l . urt ( btex $s i n ( x) $ etex , 15) ;
endgraph ;
e ndf i g ;
sin(x)
0 2 4 6
1
0.5
0
0.5
1
x
y
Pagina: 19
Latex Avanzado
Paquetes y herramientas para gracos
Dept. dInform`atica
Universitat de Val`encia
4. Dia
Este programa se puede utilizar para hacer diagramas de ujo, diagramas electricos, diagramas
UML, etc
Permite exportar las guras a png a eps e incluso a Metapost (con lo cual se puede editar y cambiar
lo que deseemos).
El graco exportado no coincide exactamente con lo que se ve en la pantalla (lo cual es un poco
desagradable) pero... es freeware.
5. JFig y g2dev
JFig es una aplicacion similar al famoso Xg de Unix. JFig esta realizado en Java por lo que
es necesario tener instalada una maquina virtual de Java (Java Runtime Environment). Antes era
freeware pero ahora es shareware.
Guarda las guras en formato *.fig. Se puede utilizar fig2dev para realizar conversiones a otros
formatos (como por ejemplo postscript).
Por ejemplo si tenemos una gura realizada con JFig y deseamos exportarla a Postscript encap-
sulado (suponiendo que fig2dev esta en el path):
fig2dev -L eps -m 0.5 figura.fig figura.eps
donde lo que sigue a la opcion -L es el lenguaje al que se desea exportar y lo que sigue a la opcion -m
es el escalado global.
6. eps2pdf
Si el programa de gracos que estamos utilizando permite exportar a Postscript encapsulado pero
no a PDF, y deseamos trabajar con pdatex (que no admite Postscript como formato graco) se
pueden transformar los cheros *.eps mediante la utilidad eps2pdf.
La gura exportada a eps en la seccion anterior se podra incluir en un chero para ser procesado
mediante latex pero si se desea incluir en un chero que sea procesado mediante pdflatex hay que
realizar un paso adicional para convertirla a pdf:
eps2pdf /f figura.eps
Pagina: 20