You are on page 1of 144

Diseño Gráfico en LATEX

Gráficos Matemáticos de Alta Calidad

x y

βϕ2 (·)
αϕ1 (·) x y

ǫx − u1 ǫy − u1

λϕ3 (·) θ
µN S I R
λr ϕ4 (·)

µS µI µR

f αψ1 (·)m + αr ψ1 (·)mr βr ϕ5 (·)


xr yr

ǫr xr ǫr yr

Jorge Mario García Usuga


Aníbal Muñoz Loaiza
Efraín Alberto Hoyos Salcedo
Diseño gráfico en LATEX

Jorge Mario García Usuga

14 de diciembre de 2007
J. M. García, A. Muñoz L. E. A. Hoyos

Diseño Gráfico en LATEX


Gráficos Matemáticos de Alta Calidad

No está permitida la reproducción total o parcial de esta obra por


cualquier medio o método sin autorización escrita de los autores.

Derechos Reservados©
Armenia Quindío Colombia 2007
ISBN: 978-958-44-2285-9
PREFACIO

Para muchos usuarios de LATEX , se hace imprescindible la inclusión


de material gráfico dentro de sus documentos matemáticos. General-
mente, el tema es algo desagradable para las personas que están dando
sus primeros pasos en LATEX , pues se deben tener archivos separados
del documento fuente para su posterior compilación. Hasta hace al-
gunos años se empezaron a implementar paquetes con la capacidad
de hacer gráficos matemáticos y no matemáticos dentro de nuestros
documentos TEX , esto se logró con paquetes como PSTricks y XY-pic
entre otros, los cuales permitieron crear gráficos a partir de códigos
tipo TeX.

Gráficos matemáticos como los ejes coordenados, diagramas de flujo,


diagramas conmutativos, gráfico de curvas en R2 y R3 entre otros, se
incluían en LATEX , haciéndolos en otros programas y luego exportán-
dolos a un formato compatible como ps o bmp. Esto producía una
incompatibilidad entre los tipos de letra usados por el software para
hacer las graficas y las fuentes usadas por LaTeX. Paquetes como
PSTricks y XY-pic presentan una forma muy “matemática"para realizar
este tipo de dibujos y producir artículos, libros y demás producción
escrita, con gráficos de excelente calidad. Como ejemplo del poder de
dichos paquetes, se presenta la portada de este libro, la cual se hizo
enteramente con PSTricks y XY-pic.

3
4

El libro está dividido en tres capítulos. El primero hace una extensa


revisión del paquete PSTricks, incluyendo ejemplos con su respectivo
código fuente. El segundo muestra dos herramientas muy útiles para
aquellas personas que no gustan de la programación en LATEX y el
último capítulo, es una recopilación de ejemplos hechos con XY-pic,
orientados a la construcción de diagramas de dinámicas ecológicas y
epidemiológicas. El libro está dirigido a usuarios avanzados de LATEX ,
pues, en los ejemplos se usan macros e instrucciones que se asume el
usuario ya debe conocer. Si el lector no tiene conocimiento de dichas
instrucciones refiérase a los documentos [11],[12],[9] y [6].

Esperamos que este material sirva de apoyo a docentes, alumnos y


TEX-nócratas que gusten de gráficos matemáticos de alta calidad en
sus documentos.
ÍNDICE GENERAL

1. Gráficos con PSTricks 9


1.1. El entorno . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2. Puntos . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3. Líneas y polígonos . . . . . . . . . . . . . . . . . . . . 15
1.3.1. Rectas simples . . . . . . . . . . . . . . . . . . 15
1.3.1.1. Flechas . . . . . . . . . . . . . . . . . 16
1.3.2. Rectas con el comando qline . . . . . . . . . . 16
1.3.3. Polígonos . . . . . . . . . . . . . . . . . . . . . 17
1.3.4. Frames con \psframes . . . . . . . . . . . . . . 18
1.4. Círculos, elipses y arcos . . . . . . . . . . . . . . . . . 18
1.4.1. Círculos . . . . . . . . . . . . . . . . . . . . . . 18
1.4.2. Sección de círculo . . . . . . . . . . . . . . . . . 19
1.4.3. Elipses . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.4. Arcos . . . . . . . . . . . . . . . . . . . . . . . 20
1.5. Curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.5.1. Los comandos pscurve, psecurve y psccurve 22
1.6. Manejo de Colores . . . . . . . . . . . . . . . . . . . . 24
1.6.1. Creación de nuevos colores . . . . . . . . . . . . 24
1.6.2. Texturas . . . . . . . . . . . . . . . . . . . . . . 28
1.6.3. Degradados . . . . . . . . . . . . . . . . . . . . 30
1.7. Manejo de objetos . . . . . . . . . . . . . . . . . . . . 32

5
6 ÍNDICE GENERAL

1.7.1. El comando \rput . . . . . . . . . . . . . . . 33


1.7.2. Resortes . . . . . . . . . . . . . . . . . . . . . . 34
1.7.3. Ejes coordenados . . . . . . . . . . . . . . . . . 37
1.7.4. Grillas . . . . . . . . . . . . . . . . . . . . . . . 40
1.8. Manejo de texto . . . . . . . . . . . . . . . . . . . . . 42
1.8.1. El comando \uput . . . . . . . . . . . . . . . . 42
1.8.2. Texto en recuadros . . . . . . . . . . . . . . . . 43
1.8.2.1. Sombras . . . . . . . . . . . . . . . . . 44
1.8.3. Texto sobre curvas . . . . . . . . . . . . . . . . 44
1.8.4. Texto con efectos especiales . . . . . . . . . . . 46
1.9. Trazado de curvas . . . . . . . . . . . . . . . . . . . . 47
1.9.1. Curvas a partir de su ecuación . . . . . . . . . 48
1.9.2. Curvas Paramétricas . . . . . . . . . . . . . . . 50
1.9.3. Regiones sombreadas . . . . . . . . . . . . . . . 51
1.10. Herramientas para árboles, grafos y diagramas . . . . . 54
1.10.1. Nodos . . . . . . . . . . . . . . . . . . . . . . . 54
1.10.2. Conectores . . . . . . . . . . . . . . . . . . . . 54
1.10.3. Etiquetas . . . . . . . . . . . . . . . . . . . . . 59
1.10.4. Árboles . . . . . . . . . . . . . . . . . . . . . . 61
1.10.4.1. Etiquetas para los nodos de los árboles 65
1.11. Manejo de objetos 3D con PSTricks . . . . . . . . . . . 66
1.11.1. El paquete pst-3dplot . . . . . . . . . . . . . 67
1.11.2. El eje cordenado 3D . . . . . . . . . . . . . . . 67
1.11.3. Ubicación de objetos con \pstThreeDPut . . . 69
1.11.4. Puntos . . . . . . . . . . . . . . . . . . . . . . . 69
1.11.5. Líneas rectas . . . . . . . . . . . . . . . . . . . 70
1.11.6. Triángulos . . . . . . . . . . . . . . . . . . . . . 71
1.11.7. Cuadros y rectángulos . . . . . . . . . . . . . . 72
1.11.8. Cajas . . . . . . . . . . . . . . . . . . . . . . . 73
1.11.9. Circunferencias y elipses . . . . . . . . . . . . . 74
1.11.10.Esferas . . . . . . . . . . . . . . . . . . . . . . . 76
1.11.11.Curvas paraméntricas en 3D . . . . . . . . . . . 77
1.11.12.Gráfica de funciones . . . . . . . . . . . . . . . 80

2. Herramientas para gráficos con PSTricks 87


2.1. JpicEdt . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.1.1. Ventanas . . . . . . . . . . . . . . . . . . . . . 89
ÍNDICE GENERAL 7

2.1.2. Herramientas de edición . . . . . . . . . . . . . 93


2.1.3. Preferencias y configuración . . . . . . . . . . . 96
2.1.4. Otras herramientas de JpicEdt . . . . . . . . . 97
2.1.5. ¿Cómo pasar de JpicEdt a LATEX? . . . . . . . 102
2.1.6. Ejemplos en JpicEdt . . . . . . . . . . . . . . . 102
2.2. LATEXDraw . . . . . . . . . . . . . . . . . . . . . . . . 111
2.2.1. Herramientas de diseño . . . . . . . . . . . . . 112
2.2.2. Configuración de objetos . . . . . . . . . . . . 114
2.2.3. ¿Cómo pasar de LATEXDraw a LATEX? . . . . . 114
2.2.4. Ejemplos en LATEXDraw . . . . . . . . . . . . . 114

3. Conceptos Generales de XY- pic 119


3.1. Diagramas de dinámicas ecológicas y epidemiológicas . 120
3.2. Diagramas conmutativos . . . . . . . . . . . . . . . . . 130
8 ÍNDICE GENERAL
CAPÍTULO 1
Gráficos con PSTricks

PSTricks es un paquete que esta incluido en LATEX con base en las


librerías macros de TEX- PostScript, fue creado por Timothy Van
Zandt de la Universidad de Princeton en 1993. Estas librerías son
compatibles con AMS-TEX y AMS-LATEX. El paquete fue diseñado
específicamente para gráficos matemáticos de alta calidad, utilizando
técnicas de gráficos vectorizados, proporcionando así una calidad que
otros paquetes no pueden alcanzar. Con PSTricks se pueden incluir es-
tilos de líneas, objetos geométricos como rectángulos, triángulos; ejes
coordenados, herramientas para gráficos de diagramas de flujo, grafos,
mayas, objetos 3D, colores y efectos de texto, entre otros.

La instalación de PSTricks, es muy fácil, en la versión para Windows


MIKTEX 2.5 ya viene pre instalado y no requiere manipular archivos
para su configuración; para versiones inferiores, se debe tener cuida-
do con la ubicación de los archivos. PSTricks también está disponible
para Linux, Mac y Unix.

Empezaremos por poner las librerías en el preámbulo de nuestro doc-


umento

\usepackage{pstricks}
\usepackage{pst-plot}

9
10 1.1. El entorno

Paquete Función
Pst-plot Útil para gráficos que conlleven rectas,
polígonos, ejes y curvas
Pst-char Permite incluir texto con efectos especiales
Pst-text Muy similar al anterior, pero este permite
poner texto a lo largo de curvas
Pst-tree Útil para la contrucción de árboles
Pst-coil Zig-zags y resortes en electrónica
Pst-node Ideal para grafos y diagramas de flujo

Cuadro 1.1: Módulos de PSTricks

Sin embargo, es bueno que para trabajar con todas las opciones, hay
que usar un paquete que los una a todos, este se incluye de la siguiente
manera:

\usepackage{pst-all}

PSTrick también incluye paquetes como pst-node especial para grafos,


el cuadro 1.1 muestra los diferentes módulos y su uso:

1.1 El entorno
Para incluir una gráfica con PSTricks en nuestro documento, debemos
invocar el entorno pspicture con la siguiente secuencia de instruc-
ciones:

\begin{pspicture}(x,y)(x’,y’)
\rput(0,0){hola}
\end{pspicture}

Los parámetros x, y y x′ , y ′ son las esquinas opuestas de un rectángulo


imaginario. Nuestra gráfica se puede salir de dicho rectángulo, pero
usando \begin{pspicture*}(x,y)(x’,y’) se recorta todo lo que so-
bre salga del rectángulo delimitado. El anterior código nos devolvera
el siguiente resultado
1. Gráficos con PSTricks 11

hola

Nada del otro mundo, sin embargo, podemos disponer de una malla
que nos guíe en la ubicación de nuestros objetos en PSTricks, para
esto creamos un nuevo objeto de la siguiente manera y lo ubicamos
antes del inicio del documento: \begin{document}.

\newpsobject{malla}{psgrid}{subgriddiv=1,griddots=10,
gridlabels=6pt}

Esto nos permitirá crear una malla útil para la ubicación de nu-estros
objetos

\begin{pspicture}(-2,-2)(2,2) \malla
\rput(0,0){hola}
\end{pspicture}

2 El resultado es el siguiente:

0
hola

-1

-2
-2 -1 0 1 2
12 1.2. Puntos

El comando \rput se usa para ubicar objetos en el espacio delimitado,


más adelante estudiaremos la versatilidad de este comando. Por ahora,
observemos que aparece una malla numerada alrededor de nuestra
gráfica, podemos ubicar ahora otros objetos con la ayuda de dicha
cuadrícula. Ubicaremos la palabra “mundo” en la posición (1, −1)
2

\begin{pspicture}(-2,-2)(2,2)
1
\malla
\rput(0,0){hola}
\rput(1,-1){mundo}
0
hola \end{pspicture}

-1
mundo

-2
-2 -1 0 1 2

Si deseo que la malla sea más fina o por el contrario con la cuadric-
ula más grande, podemos cambiar dicho parámetro con la instruc-
ción \psset{unit=1}, sólo debemos cambiar el valor de 1 por el que
necesitemos y ubicar esta instrucción antes del \begin{pspicture}.
\psset{unit=1} permite confugurar nuestro gráfico. se ubica antes
del \begin{pspicture} y se pueden predeterminar algunas opciones
como el color, la escala, el grosor de las líneas, etc.
2

1
\psset{unit=0.6}
\begin{pspicture}(-2,-2)(2,2)
0 \malla
hola
\rput(0,0){hola}
-1
mundo \rput(1,-1){mundo}
-2 \end{pspicture}
-2 -1 0 1 2

1.2 Puntos
PSTricks permite la inclusión de puntos con el siguiente comando

\psdots[par](x1,y1)(x2,y2)(xn,yn)

El siguiente ejemplo colocaremos 9 puntos con estilos diferentes:


1. Gráficos con PSTricks 13

b + t
u u rs r p
q q |
0
0 1 2 3 4 5 6 7 8 9

\psset{unit=1.2, dotsize=5pt 0}
\begin{pspicture}(0,0)(9,1)\malla
\psdots(0.5,0.5)
\psdots[dotstyle=+](1.5,0.5)
\psdots[dotstyle=triangle](2.5,0.5)
\psdots[dotstyle=triangle*](3.5,0.5)
\psdots[dotstyle=square](4.5,0.5)
\psdots[dotstyle=square*](5.5,0.5)
\psdots[dotstyle=pentagon](6.5,0.5)
\psdots[dotstyle=pentagon*](7.5,0.5)
\psdots[dotstyle=|](8.5,0.5)
\end{pspicture}

En el cuadro 1.2 ilustraremos los diferentes estilos de puntos mostra-


dos en el ejemplo anterior. Además de estos estilos de puntos podemos
adicionar algunas otras opciones.

dotsize=dim
Con esta opción podemos cambiar el tamaño del punto, por defecto
es 2pt

dotscale=num1 num2
Con ella podemos escalar el tamaño de un punto, con el primer número
el tamaño horizontal y con el segundo el tamaño vertical. Por defecto
es 1

dotangle=angle
Los puntos son rotados por el ángulo determinado por el parámetro
angle, por omisión es cero.

En muchas ocasiones es importante ubicar puntos en nuestras gráficas,


el siguiente ejemplo muestra la utilidad de estas opciones:
14 1.2. Puntos

Estilo Ejemplo
b b
*
+
+ +
| |
|
t
u t
u
triangle
u u
triangle*
rs rs
square
r r
square*
p
q p
q
pentagon
q q
pentagon*

Cuadro 1.2: Estilos de Puntos en PSTricks

\psset{unit=0.5}
\begin{pspicture}(0,-2.3)(4.9,2.3)
\psdots[dotsize=0.266](2.8,0.6)
\rput(0.6,-1.6)
{\psaxes[linewidth=0.04](0,0)(0,0)(4,4)}
\psdots[dotsize=0.17,dotangle=-66.0]
(1.6,1.0)
\psdots[dotsize=0.4,dotstyle=triangle](3.6,-0.5)
\psdots[dotsize=0.4,dotstyle=pentagon*](4.6,-0.7)
\end{pspicture}

4
3
b

b
2
1 t q
u
0
0 1 2 3 4
1. Gráficos con PSTricks 15

1.3 Líneas y polígonos


Las líneas y los polígonos son una de las herramientas más versatiles
en PSTricks. Con los puntos y las rectas se pueden crear una gran
variedad de figuras y formas muy comunes en matemáticas como: ejes
coordenados, digramas lineales, árboles, etc. A continuación presenta-
mos su configuración básica.

1.3.1. Rectas simples


\psline[par]{flechas}(x0,y0)(x1,y1)...(xn,yn)

Esta instruccion dibuja una linea a travéz de las coordenas establecidas


por los puntos (x0 , y0 )(x1 , y1 ) . . . (xn , yn )
La instrucción \psline tiene los siguientes parametros:

linearc=dim
Por omisión es 0pt y hace referencia al arco con el que se dibujan las
curvas (si estamos dibujando un polígono). Dicha dimensión debe ser
positiva.

linewidth=n
Con esta opción podemos cambiar el ancho de la línea, se puede ini-
cializar en cero. Por defecto es 0.8pt

linestyle=
La opción permite cambiar la forma como se pinta la línea, esta puede
ser solid que es la opción por defecto, dashed ofrece una línea a tro-
zos y dotted una línea punteada.

dash= n b
Permite cambiar el patrón de negro o blanco en la línea a trozos por
omisión son 5pt y 3pt. Si queremos una línea igualemte espaciada
podemos cambiar la opción a 5pt 5pt para obtener el efecto deseado.

dotsep= n
Al igual que en dash, dotsep permite cambiar el patrón de separación
16 1.3. Líneas y polígonos

de los puntos en las líneas punteadas. Por omisión es 3pt

linecolor= color
Permite cambiar el color de la línea, por omisión es black, en la sec-
ción 1.6 mostraremos otros colores posibles con PSTricks.

doubleline= n
Permite trazar una línea doble o sencilla, por defecto es false, es decir
sencilla, si la queremos doble cambiamos n por true.

Veamos el siguiente ejemplo:

\psset{unit=2.4}
\begin{pspicture}(0,0)(4,3)
\malla
2
\psline(0,1.5)(4,1.5)
\psline[linecolor=blue,
doubleline=true,
1
linestyle=dotted ](0,0.5)(4,0.5)
\psline[linecolor=red,
linestyle=dashed ](0,2.5)(4,2.5)
\end{pspicture}
0
0 1 2 3 4

1.3.1.1. Flechas
Las opciones de flechas se pueden implementar para construir ejes co-
ordenados o diagramas de flujo, árboles, etc, para este propósito cam-
biamos el párametro entre las llaves {}, a continuación en el cuadro
1.3 mostraremos las diferentes estilos de flechas.

1.3.2. Rectas con el comando qline


Para contruir flechas simples podemos usar el comando qline (x0 , y0 )
(x1 , y1 ), el cual dibuja una recta entre los puntos sin parámetros de
grosor, estilos o flechas, veamos el siguiente ejemplo:
1. Gráficos con PSTricks 17

Parámetro Ejemplo Parámetro Ejemplo


-> <->
<- ->>
>>-<< <<->>
|<- ->|
>- -<
|- -|
|<->| |-|
[- -]
(- -)
[-] (-)
o- -o
*- -*
*-* o-o

Cuadro 1.3: Estilos de flechas para rectas en PSTricks


1

\begin{pspicture}(0,0)(1,2)
\malla
0 \qline(0,0)(3,1)
0 1 2 3
\end{pspicture}
\psset{unit=2.4}

1.3.3. Polígonos
Este comando es muy similar a psline, y dibuja un polígono cerrado
que une el primer punto (x0 , y0 ) con el último (xn , yn ).

\pspolygon[par](x0,y0)(x1,y1)(x2,y2)...(xn,yn)$

Veamos el siguiente ejemplo:


2

\psset{unit=2.4}
\begin{pspicture}(0,0)(2,2)
1 \malla
\pspolygon[linearc=.2]
(0,1)(1,0)(2,1)(1,2)
0 \end{pspicture}
0 1 2
18 1.4. Círculos, elipses y arcos

1.3.4. Frames con \psframes


Esta instrucción dibuja un rectángulo entre las esquinas opuestas (x0 , y0 )
y (x1 , y1 )

\psframe[par](x0,y0)(x1,y1)
2

\psset{unit=2.4}
\begin{pspicture}(0,0)(2,2)
1 \malla
\psframe(0.5,0.5)(1.5,1.5)
\end{pspicture}
0
0 1 2

1.4 Círculos, elipses y arcos


1.4.1. Círculos
Para dibujar círculos, elipses y arcos, PSTricks implementa el siguiente
comando

\pscircle[par](x0,y0){r}

La instrucción simplemente dibuja una circunferencia con centro en


(x0 , y0 ) y radio r

Por ejemplo:
3

\psset{unit=1.5}
\begin{pspicture}(0,0)(3,3)
\malla
2 \pscircle[linewidth=2pt]
(1,1){1}
\pscircle[linestyle=dashed]
(1.5,1.5){1}
1 \pscircle[linestyle=dotted]
(1.5,2){1.2}
\end{pspicture}

0
0 1 2 3
1. Gráficos con PSTricks 19

Los parámetros son los mismos que podemos encontar para dibujar
rectas. En el ejemplo anterior podemos ver el manejo de estas opciones.

1.4.2. Sección de círculo


PSTricks implemeta la instrucción \pswedge para dibujar secciones de
círculos, muy usados en estadística y geometría:

\pswedge[par](x0,y0){r}{ang1}{ang2}

La instrucción requiere un punto como centro (x0 , y0 ), y con el radio


r dibujará una sección de círculo entre los ángulos arg1 y arg2.
3

\psset{unit=2.8}
\begin{pspicture}(0,0)(3,3)
2 \malla
\pswedge[linewidth=2pt]
{1}{0}{70}
1 \pswedge[linewidth=2pt]
{2}{0}{70}
\pswedge[linewidth=2pt]
0
(3,3){2}{180}{270}
0 1 2 3

1.4.3. Elipses
Al igual que con el círculo las elipses necesitan un centro (x0 , y0 ), pero,
para lograr el efecto requieren dos radios r1 y r2 .

\psellipse[par](x0,y0)(r1,r1)

veamos el siguiente ejemplo :

\psset{unit=2.2}
2 \begin{pspicture}(0,0)(4,3)\malla
\psellipse[linestyle=dashed]
(2,1)(2,1)
1
\psellipse(2,1.5)(1,1.5)

0
0 1 2 3 4
20 1.4. Círculos, elipses y arcos

1.4.4. Arcos
Los arcos requieren de un centro (x, y) que se tomará como base para
la circunferencia imaginária con la cual trazaremos el arco, un radio r
que es la distancia entre el centro y el arco, y dos ángulos angA, angB
que al igual que en la sección de círculos sirve para denotar el inicio y
el fin del arco.

\psarc[par]{flechas}(x,y){r}{angA}{angB}

La funcion psarc utiliza los siguientes parámetros extra:

showpoints=
Se usa para mostar una línea punteada del centro de la circunferencia
imaginária a los extremos del arco, por omisión es false .

arcsepA= y arcsepB=
Estos parámetros que por defecto son 0pt, se usa para que parte del
arco tambien quede dibujado con lineas punteadas, comenzando por
angA o por angB, dependiendo de la functón que usemos.

arcsep=
Con esta opción podemos hacer lo mismo que con las opciones arcsepA
y arcsepB pero simultáneamente por ambos extremos del arco.

Ejemplo:

\psset{unit=2.2}
\begin{pspicture}(0,0)(4,3)
2 \malla
\psarc[showpoints=true,
arcsepA=2](0.2,0.2){1.5}{0}{90}
1 \psarc[showpoints=true,
arcsepB=2](3.8,0.2){1.5}{90}{180}
\psarc[showpoints=true,
0
arcsep=1](2,3){1.5}{190}{350}
0 1 2 3 4

Para hacer arcos con flechas se une la instrucción \psarcn con la sigu-
1. Gráficos con PSTricks 21

iente notación:

\psarcn[par]{flecha}(x,y){r}{angA}{angB}

El arco es dibujado en sentido horario, y tiene una opción {flecha}


con la cual podemos dibujar flechas como se indica en el cuadro 1.3.

Ejemplo:

\psset{unit=2.2}
\begin{pspicture}(0,0)(4,3)
2 \malla
\psarc{o-o}(0.2,0.2)
{1.5}{0}{90}
\psarc{<->}(3.8,0.2)
1
{1.5}{90}{180}
\psarc[arcsep=1]{>>-<<}(2,3){1.5}
{190}{350}
0 \end{pspicture}
0 1 2 3 4

1.5 Curvas
Para dibujar curvas, PSTricks utiliza algorítmos de interpolación de
puntos, una de las más simples nos permite hacer una curva entre cu-
atro puntos; veamos la instrucción psbezier.

\psbezier[par]{flechas}(x0,y0)(x1,y1)(x2,y2)(x3,y3)

Como podemos observar utiliza los mismos parámetros que las ante-
riores instruciones y cuatro puntos (x0 , y0 ), (x1 , y1 ), (x2 , y2 ), (x3 , y3 ).
La curva comienza en el punto (x0 , y0 ), pero es tangente a una línea
recta entre el primer punto y el segundo, luego la curva termina en
el punto (x3 , y3 ) pero tangente a una línea imaginaria entre el tercero
y cuarto punto. Al igual que con la instrucción \psarc esta también
tiene la opción showpoints para ver las líneas imaginarias, veamos un
ejemplo:
22 1.5. Curvas

3 b

\psset{unit=2.2}
2 \begin{pspicture}(0,0)(4,3)
\malla
\psbezier[showpoints=true]{->}
(0,0)(1,3)(3,0)(4,3)
1

0 b b
0 1 2 3 4

La intrucción \parabola presenta la siguiente sintaxis:

\parabola[par]{flechas}(x0,y0)(x1,y1)

Dibuja una parábola que comienza en el punto (x0 , y0 ) y tiene como


máximo o mínimo el punto (x1 , y1 ) dependiendo si el ultimo punto
esta por encima o por debajo del primer punto.

Ejemplo:

\psset{unit=2.2}
2 \begin{pspicture}(0,0)(4,3)
\malla
\parabola{<->}(0,0)(2,3)
\parabola{>-o}(1,3)(2,0)
1
\end{pspicture}

0
0 1 2 3 4

1.5.1. Los comandos pscurve, psecurve y psccurve


El comando psbezier y parabola sólo pueden dibujar curvas simples
con no más de 4 puntos determinados; con estas nuevas instrucciones
podemos dibujar curvas mucho más elaboradas y definidas, con la can-
tidad de puntos que necesitemos, sin embargo, es necesario tener en
1. Gráficos con PSTricks 23

cuenta las siguientes opciones:

curvature= n m p

Por defecto este parámetro es de 1 0.1 0, y se utiliza para modificar


la forma de la curva, el primer valor hace la curva más firme. El se-
gundo parámetro hace que la curva se “apriete” si el ángulo formado
por los puntos es mayor a 45 grados, la curva es más suelta. El tercer
parámetro es similar al segundo, pero afecta la abertura de la curva
haciendola más o menos abierta en los vértices. Sin embargo es bueno
dejar los valores predeterminados por PSTricks.

La instrucción pscurve genera una curva abierta con los mismos parámet-
ros estudiados anteriormente. La opción showpoints muestra los puntos
de interpolación.

3 b b

\psset{unit=2.2}
\begin{pspicture}(0,0)(4,3)
2 b
\malla
\pscurve[showpoints=true]{<->}
(0,0)(1,2)(2,3)(3,3)(4,2)
1
\end{pspicture}

0
0 1 2 3 4

psecurve es muy similar al anterior, pero la curva no pasan por el


primer y último punto, el algoritmo trata de unir los extremos lo mejor
posible, el siguiente ejemplo es igual al anterior pero usando psecurve.

3 b

\psset{unit=2.2}
2 \begin{pspicture}(0,0)(4,3)
\malla
\psecurve[showpoints=true]{<->}
1 (0,0)(1,2)(2,3)(3,3)(4,2)
\end{pspicture}

0
0 1 2 3 4
24 1.6. Manejo de Colores

Por último tenemos psccurve la cual es similar a pscurve pero ésta


genera una curva cerrada uniendo el primer y último punto:

3 b

\psset{unit=2.2}
\begin{pspicture}(0,0)(4,3)
2 b
\malla
\psccurve[showpoints=true]{<->}
(0,0)(1,2)(2,3)(3,3)(4,2)
1 b \end{pspicture}

0 b
0 1 2 3 4

1.6 Manejo de Colores


En PStricks se puede trabajar con los siguientes colores:

red green blue

cyan magenta yellow


PSTricks también maneja colores en escala de grises:

Negro (black), gris oscuro (darkgray), gris (gray), gris claro (lightgray),
y blanco (white)

1.6.1. Creación de nuevos colores


Además de estos colores podemos definir nuevos con las siguientes in-
strucciones: newgray y newrgbcolor
1. Gráficos con PSTricks 25

\newgray{color}{n}

Este comando se utiliza para generar nuevos tonos de gris, color será
el nombre de nuestro nuevo color, n es la intensidad entre 0 y 1, donde
0 es negro y blanco es 1.

\newrgbcolor{color}{r g b}

Esta instrucción se usa para generar nuevos coleres con el formato


RGB (red, green y azul), color será el nombre de nuestro nuevo color
y {r,g,b} son números entre 0 y 1.

newhsbcolor

\newhsbcolor{color}{h s b}

La anterior instrucción se usa para generar nuevos colores con el for-


mato HSB (hue, saturation, brightness), {color} será el nombre de
nuestro nuevo color y {h,s,b} son números entre 0 y 1.

newcmykcolor

\newcmykcolor{color}{c m y k}

Esta instrucción se usa para generar nuevos colores con el formato


CMYK (Cian, magenta, yellow, black), {color}será el nombre de nue-
stro nuevo color y {c,m,y,k} son números entre 0 y 1.

Ejemplo:
26 1.6. Manejo de Colores

2
Favoritismo en los editores de texto

0 LATEX Word

-1
Otros

-2

-3
0 1 2 3 4 5 6 7 8

\psset{unit=2.0}
\begin{pspicture}(0,-3)(8,3)\malla
\newgray{girisclaro}{0.9}
\newrgbcolor{elcolorlatex}{0.1 0.1 1.0}
\newhsbcolor{elcolorword}{0.1 0.9 1.0}
\newcmykcolor{elcolorotro}{0.1 0.3 0.3 0.3}
\pspolygon[linewidth=0.01,fillstyle=solid,
fillcolor=girisclaro](0.8,1.8)(0.8,2.3)
(6.3,2.3)(6.3,1.8)
\pswedge[linewidth=0.04,fillstyle=solid,
fillcolor=elcolorlatex](3.7,-0.3){1.86}{53.8}{271.5}
\pswedge[linewidth=0.04,fillstyle=solid,
fillcolor=elcolorword](3.7,-0.3){1.86}{347.2}{54.3}
\pswedge[linewidth=0.04,fillstyle=solid,
fillcolor=elcolorotro](3.7,-0.3){1.86}{268.6}{347.0}
\rput(3.6,2.0){Favoritismo en los editores de texto}
\rput(2.7,0.1){\LaTeX}
\rput(4.6,0){Word}
\rput(4.3,-1.1){Otros}
\end{pspicture}

Para usuarios avanzados de PostScript, no es recomendado usar col-


1. Gráficos con PSTricks 27

ores cmyk y HSB, pues en algunas ocasiones requiere de otros con-


troladores y puede generar errores al compilar. Se recomienda hacer
RGB para generar nuevos colores.

Recordemos que con el comando \psset{...} podemos configurar


opciones de color y con el comando fillcolor podemos indicar que
todos los objetos creados de ahí en adelante sean dibujados con ese
color de relleno, la opción linecolor sirve para definir el color de las
lineas de contorno. Veamos el siguiente ejemplo:
2

\psset{unit=2.0,
fillcolor=yellow,linecolor=blue}
\begin{pspicture}(0,0)(2,2)
\malla
1 \psellipse(1,.5)(1,.5)
\end{pspicture}

0
0 1 2

Podemos ver en el ejemplo anterior que la elipse, aunque está pintada


de contorno azul, no se rellenó de color amarillo, así que para ello,
debemos tener en cuenta los siguientes parámetros:

linewidth=n
Con este determinamos el ancho de la línea de cualquier objeto (líneas,
círculos, etc), por defecto es 8pt.

fillstyle=s
Este comando permite definir el estilo de llenado de los objetos, este
puede ser none, el cual hace que el objeto no tenga ningún relleno. La
opción solid, permite que se pueda rellenar un objeto bien sea con
un color o con una textura.

Para definir un color de llenado, se usa el comando fillcolor=c,


donde c es uno de los colores antes mencionado. Veamos un ejemplo:
28 1.6. Manejo de Colores

\psset{unit=1.0}
\begin{pspicture}(0,0)(3,5)
4 \malla
\psellipse[fillstyle=solid,
fillcolor=lightgray,
3 linecolor=red](1,.5)(1,.5)
\psellipse[fillstyle=solid,
fillcolor=red,
2 linecolor=blue](2,2)(0.5,0.5)
\psframe[fillstyle=solid,
fillcolor=green,
1 linecolor=magenta](0,5)(1,4)
\pscircle[fillstyle=solid,
fillcolor=cyan,
0
linecolor=green](2,4){1}
0 1 2 3 \end{pspicture}

1.6.2. Texturas
Recordemos que fillstyle=s con la opción solid puede dibujar un
objeto con un relleno que puede ser un color o una textura, el cuadro
1.4 muestra las opciones para rellenado con texturas

Nombre efecto
none Es el valor por defecto, no rellena el objeto
con ningún color o textura
vlines líneas verticales con una inclinación de 45o
hlines líneas horizontales con una inclinación de
45o
crosshatch Lineas cruzadas verticales y horizontales a
45o
gradient Da al objeto una textura de degradado en-
tre dos colores

Cuadro 1.4: Texturas en PSTricks

En el siguiente ejemplo se usan los mismos objetos que en el ejemplo


anterior, pero esta vez usaremos las texturas mencionadas, excepto el
gradiente al cual dedicaremos más tiempo:
1. Gráficos con PSTricks 29

\malla
4
\psellipse[fillstyle=vlines]
3 (1,.5)(1,.5)
\psellipse[fillstyle=hlines]
(2,2)(0.5,0.5)
2

1 \psframe[fillstyle=none]
(0,5)(1,4)
0
0 1 2 3 \pscircle[fillstyle=crosshatch]
(2,4){1}
\end{pspicture}
\psset{unit=1.0}
\begin{pspicture}(0,0)(3,5)

El cuadro 1.5 muestra otras opciones que se pueden aplicar a las tex-
turas, como cambiar el ángulo de inclinación, el color de las líneas, etc.

Nombre efecto
hatchsep Separación entre líneas, por defecto es 4pt
hatchwidth Grosor de las líneas, por defecto es 0.8pt
hatchcolor Color de las líneas, por defecto es negro
hatchangle Inclinación de las líneas

Cuadro 1.5: Parámetros adicionales para texturas

Veamos el siguiente ejemplo:

\begin{pspicture}(0,0)(3,3)
\malla
2 \psellipse[fillstyle=hlines,
hatchcolor=red,hatchangle=22]
(2,0.5)(0.5,0.5)
1 \psframe[fillstyle=vlines,
hatchangle=0 ](0,1)(1,0)
\pscircle[fillstyle=crosshatch,
0 hatchsep=2pt](1.5,2){0.5}
0 1 2 3 \end{pspicture}

\psset{unit=1.0}
30 1.6. Manejo de Colores

1.6.3. Degradados
Uno de los efectos más vistosos y usados de PSTricks es el degradado,
sólo necesitamos poner fillstyle=gradient y podemos obtener un
efecto de degradado lineal en dos colores:

\psset{unit=1.5}
2 \begin{pspicture}(0,0)(3,3)
\malla
\psframe[fillstyle=gradient]
1 (2.8,1)(0.2,3)
\end{pspicture}

0
0 1 2 3

Las siguientes opciones determinan la configuración del degradado:

gradbegin=color
Es usada para escoger el color inicial del degradado, por defecto es
azul oscuro.

gradend=color
Es usada para escoger el color final del degradado, por defecto es azul
claro.

gradmidpoint=n
n debe ser un número entre 0 y 1, y se utiliza para escoger la posición
del punto intermedio del degradado.

gradangle=ang
Denota el álgulo de rotación para el degradado medido en grados, el
valor por defecto es 0.

gradlines=n
Determina el número de líneas del degradado, el valor predeterminado
es 500, mientras más líneas más fino es el efecto del degradado.
1. Gráficos con PSTricks 31

El siguiente ejemplo muestra el poder de los degrados para gráficos


matemáticos:
Nivel de α

N4

N3

N2

N1

M1 M2 M3 M4 Máquinas

\psset{unit=1.5}
\begin{pspicture}(0,-3.5)(9.5,3.5)
\psline[linewidth=0.04cm]{->}(1.6,-2.7)(1.6,2.7)
\psline[linewidth=0.04cm]{->}(1.6,-2.7)(7.6,-2.7)
\psframe[linewidth=0.02,fillstyle=gradient,
gradlines=2000,gradmidpoint=1.0](2.7,1.2)(2.1,-2.7)
\psframe[linewidth=0.02,fillstyle=gradient,
gradlines=2000,gradbegin=red,gradend=cyan,
gradmidpoint=1.0](3.9,-0.04)(3.3,-2.7)
\psframe[linewidth=0.02,fillstyle=gradient,
gradlines=2000,gradbegin=magenta,
gradend=yellow,gradmidpoint=1.0](5.2,1.9)(4.6,-2.7)
\psframe[linewidth=0.02,fillstyle=gradient,
gradlines=2000,gradbegin=green,gradend=red,
gradmidpoint=1.0](6.4,-1.6)(5.8,-2.7)
\psline[linewidth=0.03cm,linestyle=dashed,
dash=0.16cm 0.16cm](1.6,-1.6)(6.3,-1.6)
32 1.7. Manejo de objetos

\psline[linewidth=0.03cm,linestyle=dashed,
dash=0.16cm 0.16cm](1.6,1.9)(5.1,1.9)
\psline[linewidth=0.03cm,linestyle=dashed,
dash=0.16cm 0.16cm](1.7,0)(3.7,0)
\psline[linewidth=0.03cm,linestyle=dashed,
dash=0.16cm 0.16cm](1.7,1.2)(2.4,1.2)
\rput(8.6,-3.1){\psframebox[linewidth=0.04]{Máquinas}}
\rput(1.4,3.1){\psframebox[linewidth=0.04]
{Nivel de $\alpha$}}
\rput(2.3,-3.1){$M_1$}
\rput(3.5,-3.1){$M_2$}
\rput(4.8,-3.1){$M_3$}
\rput(6,-3.1){$M_4$}
\rput(1.0,-1.6){$N_1$}
\rput(1.0,0){$N_2$}
\rput(1.0,1.2){$N_3$}
\rput(1.0,1.9){$N_4$}
\end{pspicture}

En PSTricks existe algo que se llama comandos estrella, los cuales dan
atributos por defecto a los objetos que vamos a dibujar, por ejemplo:

\pscircle*[linestyle=dashed](1.5,1.5){1}

Como podemos ver aparece un * después de invocar el comado \pscircle,


con esto le indicamos al compilador de LATEX que rellene el objeto
con el color determinado por linecolor, linewidth toma el valor de
0, fillstyle toma el valor de solid, linestyle el valor de none y
fillcolor toma el valor determinado por linecolor. Debemos tener
especial cuidado en configurar los valores anteriormente mencionados
si queremos usar los comandos estrella, pues, pueden producir una
gráfica no deseada.

1.7 Manejo de objetos


En los ejemplos anteriores hemos visto el uso de algunos comandos
como \rput para ubicar objetos, tambien usamos el objeto malla que
1. Gráficos con PSTricks 33

hemos creado a partir de un nuevo comando. En esta sección estudi-


aremos más a fondo el uso de estas herramientas:

1.7.1. El comando \rput

Ya hemos tenido algún contacto con este comando, pues lo hemos apli-
cado en ejemplos anteriores. Veamos sus parámetros completos:

\rput[P]{Ang}(x,y){Obj}

El comando ubica un objeto “obj” que puede ser un texto una tabla o
una gráfica en un punto (x, y), con el argumento P podemos cambiar
la posición en que se coloca la caja de LATEX, por defecto este valor es
[c], lo que nos indica que el objeto aparece centrado en la posición
(x, y). Además de [c] existen otros valores con los que podemos hacer
que los objetos no aparezcan en el centro, el siguiente gráfico ilustra
los demás valores:

tl t tr
Objeto

l c r

Caja imaginaria

b b br
Es fácil ver de donde vienen los demás valores (left, top, etc). El
parámetro ang determina el ángulo de rotación del objeto y se mide en
grados sexagesimales entre -360 y 360, sin embargo, se pueden abre-
viar algunos ángulos especiales, como los de 90, 180, etc, el cuadro 1.6
muestra las abreviaciones:
Veamos el siguiente ejemplo:
34 1.7. Manejo de objetos

Ángulo letra
N 0o
L 90o
D 180o
R 270o
W −90o
S −180o
E 270o

Cuadro 1.6: Ángulos espciales

Re
cta
Ta
ng
ent
e
Diámetro

Recta Se
cante

\psset{unit=1.0}
\begin{pspicture}(0,-2)(5,2)
\psline[linewidth=0.04cm]{<->}(1.5,1.9)(4.8,-0.1)
\psline[linewidth=0.04cm]{<->}(4.6,-1.8)(0.0,-1.1)
\pscircle[linewidth=0.04](2.4,-0.4){1.5}
\psline[linewidth=0.04cm](2.5,1.1)(2.5,-1.9)
\rput{-30.0}(3.4,1.1){Recta Tangente}
\rput{-8.0}(2.6,-1.3){Recta Secante}
\rput{W}(2.2,-0.3){Diámetro}
\end{pspicture}

1.7.2. Resortes
Este objeto permite construir curvas en forma de resortes o zig-zags,
La estructura del comando es la siguiente:
1. Gráficos con PSTricks 35

\pscoil[par]{flechas}(x1,y1)(x2,y2)

El cual extiende un resorte del punto (x1 , y1 ) hasta (x2 , y2 ). El sigu-


iente comando permite hacer el efecto de zig-zags con los mismos
parametros:

\pszigzag[par]{flechas}(x1,y1)(x2,y2)

Para configurar la apariencia de los resortes y zig-zags se tiene las op-


ciones mostradas en el cuadro 1.7.

Parámetro Efecto
coilwidth=n Amplía o reduce el ancho del resorte o zig-
zag, por defecto es 1cm.
coilheight=h Con h > 0 esta opción determina el
número de repeticiones del zig-zag o re-
sorte. Mientras más pequeño sea este valor
más repeticiones se harán.
coilArmA=n Representa la longitud del brazo que está
en el punto (x1 , y1 ) del resorte.
coilArmB=n Es la longitud del brazo que está en el pun-
to (x2 , y2 ) del resorte.
coilArm=n Provoca que coilArmB y coilArmA tengan
el mismo valor.
coilaspect=ang Cambia el ángulo con que se dibujan los
resortes, por defecto es 45 pero se puede
modificar 0 ≤ ang < 90, este parámetro
no afecta a los zig-zags.
coilinc=ang Por defecto es 10, y determina la suavidad
con que se dibujan los resortes, no afecta
a los zig-zags.

Cuadro 1.7: Parámetros de los resortes y zig-zags

Este ejemplo muestra la versatilidad de ambos comandos:


36 1.7. Manejo de objetos

B1
M1
l2
R1 r1
b

l1

m1

\psset{unit=0.8}
\begin{pspicture}(0,-2.5)(9.5,2.4)
\psline(0,-1.8)
\psline(0,-1.8)(2.1,-1.8)
\psline(3.2,-1.8)(4.9,-1.8)
\psline(4.9,-1.8)(4.9,-0.2)
\psline(5.5,0.18)(4.9,0.7)
\psline(4.9,0.7)(4.9,1.9)
\psline(4.9,1.9)(2.8,1.9)
\psline(1.6,1.9)(0.0,1.9)
\psframe(2.8,2.4)(1.6,1.5)
\psdots[dotsize=0.2](5.5,0.2)
\rput(2.1,2.0){$B_1$}
\rput(4.2614064,0.39890626){$R_1$}
\rput(2.4,-1.1){$l_1$}
\rput(1.1,0.8){$l_2$}
\psframe(8.4,2)(7.2,1.1)
\pscircle(7.8,-1.4){0.5}
\rput(7.8,1.5){$M_1$}
\rput(7.8,-2.3){$m_1$}
\rput(9.1,0.5){$r_1$}
\pszigzag[coilheight=0.2]{o-*}
(0,0)(0,1.8)
\pszigzag[coilheight=0.1]{o-*}
(2.1,-1.8)(3.2,-1.8)
\pscoil[coilheight=0.5]{*-*}
(7.8,1.1)(7.8,-0.9)
1. Gráficos con PSTricks 37

1.7.3. Ejes coordenados

Los ejes coordenados son uno de los objetos más utilizados en la com-
posición de textos matemáticos, PSTricks tiene una herramienta lla-
mada psaxes, con la cual podemos dibujar casi cualquier tipo de eje
cordenado, veamos la sintaxis:

psaxes[par]{flechas}(x0,y0)(x1,y1)(x2,y2)

Lo anterior, permite que se dibuje un eje coordenado entre el rectán-


gulo con vértices opuestos (x1 , y1 ) y (x2 , y2 ) y el origen del sistema
está en (x0 , y0 ). El comando psaxes tiene los siguientes parámetros
(cuadro 1.8)

Parámetro Efecto
labels= all es el valor por defecto y provoca que se pongan
las etiquetas de los ejes x y y, x/y dibuja la eti-
queta para el correspondiente eje y none no dibuja
ninguna etiqueta.
showorigin= false/true Con esta opción podemos hacer que
aparezca o no el origen de los ejes .
axesstyle= Por defecto es axes y hace que el eje se dibuje
con las dos líneas rectas usuales, frame dibuja un
frame o rectángulo y none no dibuja los ejes.
Ox= y Oy= Determina el número donde comienzan a numer-
arse los ejes, por defecto es 0.
Dx= y Dy= Representa el incremento entre etiquetas, por de-
fecto es 1.
dx= y dy= determina la distancia entre las marcas (ticks).

Cuadro 1.8: Parámetros de los ejes

Ejemplo:
38 1.7. Manejo de objetos

f (x)
2

0 1 2 3 4 5 6 7 8 9

\psset{unit=0.8}
\begin{pspicture}(0,-3)(5,3)
\rput(0.3,-2.1){\psaxes[linewidth=0.04,
tickstyle=bottom,dx=0.5cm,dy=1.2cm]
{<->}(0,0)(5,0)(0,5)}
\psbezier[linewidth=0.04]{<->}
(0.0,-1.7)(1.6,-2.9)(1.9,1.7)(4.9,0.2)
\rput(5.1,0.71){$f(x)$}
\psline[linewidth=0.04cm,
linestyle=dashed,
dash=0.16cm 0.16cm](3.7,0.5)(3.7,-2.1)
\end{pspicture}

El cuadro 1.9 muestra la forma en que se pueden configurar los ticks


(líneas que acompañan a las etiquetas de los ejes).

Ejemplo:
1. Gráficos con PSTricks 39

Parámetro Efecto
ticks= Por defecto es all y sirve para mostrar las lineas
que acompañan a los números en los ejes, si quer-
emos que aparesca solo los del eje x o y utilizamos
la opción x/y,con none se eliminan de ambos ejes.
tickstyle= Este parámetro determina la ubicación de las
líneas que acompañan a las etiquetas de los ejes.
full es el valor por defecto y hace que estas líneas
se extiendan por ambos lados de los ejes, botton
hace la misma acción al lado donde estan las eti-
quetas, y top lo hace al lado opuesto.
ticksize=n Determina la longitud de las marcas, por defecto
es 3pt.

Cuadro 1.9: Parámetros de los ticks


3

2
2
1
1
0

−2 −1 1 2
-1
−1

-2
−2

-3
-3 -2 -1 0 1 2 3 4 5 6

\psset{unit=1.0}
\begin{pspicture}(-3,-3.22)(6.0,3.22)\malla
\psaxes[linewidth=0.02,
arrowlength=1.4]{<->}(0,0)(-3,-3)(3,3)
\pscircle[linewidth=0.04,dimen=outer](0,0){2.0}
\psline[linewidth=0.04cm]{<->}(-1,3)(3.5,0)
\pscircle[linewidth=0.04](3,2){1.0}
\end{pspicture}

Ejemplo:
40 1.7. Manejo de objetos

4,5
4,0
3,5
3,0
2,5
2,0
1,5
1,0
0,5
0
0 1,5 3,0 4,5 6,0 7,5 9,0
\psset{unit=1.0}
\begin{pspicture}(0.5,0.5)(5,5.5)
\psaxes[Dx=1.5,Dy=0.5]{->}(10,5)
\psplot[linecolor=blue]{0}{10.5}
{x 180 mul 1.52 div cos 2 mul 2.5 add}
\psplot[linecolor=red]{0}{10.5}
{x 180 mul 1.52 div sin 2 mul 2.5 add}
\end{pspicture}

El la sección 1.9.1 estudiaremos la función \psplot.

1.7.4. Grillas
Las grillas o mallas son un complemento ideal para trabajar con los
ejes coordenados, inclusive pueden hacer las veces de éste si asi se re-
quiere, su sintáxis es la siguiente:

\psgrid[par](x1,y1)(x2,y2)

La ejecución del comando anterior produce una malla en el rectán-


gulo con extremos (x1 , y1 ) y (x2 , y2 ), si no ubicamos estas coorde-
nas, \psgrid ubicara una malla en las coordenadas establecidas por
\begin{pspicture}(x1,y1)(x2,y2) . El cuadro 1.10 muestra los difer-
entes parámetros para configurarla:
1. Gráficos con PSTricks 41

Parámetro Efecto
gridwidth= n Determina el ancho de las líneas principales de
la grilla, por defecto es 0.8pt.
subgridwidth= n Igual al anterior pero con las líneas secundarias
gridcolor= color Es el color de las líneas principales, por defecto
es black.
subgridcolor= color Color de las líneas secundarias, por defecto es
gray.
gridlabels=n Tamaño de los números que enmarcan la grilla,
por defecto es 10 pt.
gridlabelcolor = color Color de los números que enmarcan la grilla,
por defecto es black.
griddots=n Las líneas principales son punteadas con n pun-
tos por unidad y n > 0.
sub griddots=n Igual al anterior pero con la grilla segundaria y
n > 0.

Cuadro 1.10: Parámetros de \psgrid

3
Ejemplo:
2
2

0 1
0 1 2

0
-2 -1 0 1 2

-1

\psset{unit=0.8}
\begin{pspicture}(0,-2.8)(8.6,2.8)
\rput(0.3,0.4){\psgrid[gridwidth=0.02,
subgridwidth=0.01,gridlabels=6.0pt,
subgridcolor=blue](0,0)(0,0)(2,2)}
\rput(6.76,-1.3) {\psgrid[gridwidth=0.02,
subgridwidth=0.01,
gridlabels=5.0pt,subgriddiv=8,griddots=1,unit=1.3cm,
gridcolor=gray,subgridcolor=black](2,0)(-2,-1)(2,3)}
42 1.8. Manejo de texto

\end{pspicture}
{\footnotesize\begin{verbatim}

1.8 Manejo de texto


El texto es una parte fundamental en la elaboración de documentos
matemáticos, PSTricks posee herramientas para la inclusión de texto
científico en nuestros libros o arctículos, ya hemos visto que lo pode-
mos hacer con el comando \rput, sin embargo es posible hacer muchos
otros efectos que se pueden utilizar en presentaciones o ecuaciones muy
elaboradas.

1.8.1. El comando \uput


Con este comando podemos ubicar etiquetas en nuestros gráficos, tiene
la siguiente sintáxis:

\uput{s}[r]{ang}(x,y){objeto}

El parámetro s hace que la etiqueta aparezca separada del punto (x, y)


una distancia determinada, por defecto es 5pt. La opción r determina
el ángulo de la etiqueta.

Ejemplo:

12
11 1 \psset{unit=1.5}
3
\begin{pspicture}(0,0)(4,4)
10 2 \malla
\pscircle(2,2){2}
2
9 3 \uput{2.1cm}[0](2,2){$3$}
\uput{2.1cm}[30](2,2){$2$}
8 4 \uput{2.1cm}[60](2,2){$1$}
1
\uput{2.1cm}[90](2,2){$12$}
7 5 \uput{2.1cm}[120](2,2){$11$}
6
0
\uput{2.1cm}[150](2,2){$10$}
0 1 2 3 4 \uput{2.1cm}[180](2,2){$9$}
1. Gráficos con PSTricks 43

\uput{2.1cm}[210](2,2){$8$} (2.5,2.1)(3,2)(2.5,1.9)(2,2)
\uput{2.1cm}[240](2,2){$7$} \pspolygon[fillstyle=solid,
\uput{2.1cm}[270](2,2){$6$} fillcolor=lightgray](2,2)
\uput{2.1cm}[300](2,2){$5$} (1.5,2.2)(0.9,2.7)(1.5,2.4)(2,2)
\uput{2.1cm}[330](2,2){$4$} \qline(2,2)(2.5,0.5)
\pspolygon[fillstyle=solid, \end{pspicture}
fillcolor=lightgray](2,2)

1.8.2. Texto en recuadros


Estos comandos son independientes de PSTricks, así mismo se pueden
usar en otros contextos. Su tamaño depende de la cantidad de texto
que se les aplique. La sintáxis es la siguiente y es igual para todas:

\psframebox[par]{texto}

Las opciones par son las que estudiamos en las secciones anteriores y
texto es lo que deseamos enmarcar. El ejemplo siguiente mostrará la
sintaxis y el resultado obtenido:
4

\psframebox
3 \psdiabox

2
\psdblframebox

\pscirclebox
1
\pstribox

0
\psovalbox
0 1 2 3 4 5 6 7

\psset{unit=1.8}
\begin{pspicture}(0,0)(7,4)\malla
\rput[tl](0,3.5){\psframebox{$\backslash$psframebox}}
\rput[tl](0,2.5){\psdblframebox{$\backslash$psdblframebox}}
\rput[tl](0,1.5){\pstribox{$\backslash$pstribox}}
\rput[tl](4,3.5){\psdiabox{$\backslash$psdiabox}}
\rput[tl](4.5,2.5){\pscirclebox{$\backslash$pscirclebox}}
44 1.8. Manejo de texto

\rput[tl](4.5,.8){\psovalbox{$\backslash$psovalbox}}
\end{pspicture}

1.8.2.1. Sombras
En realidad cualquier figura cerrada de PSTricks puede generar som-
bra, como los polígonos cerrados, los círculos, las cajas de texto, etc.
Para ubicar este efecto sólo se usa el parámetro shadows=true/false,
el cual, por defecto es false .

Otro parámetro que se usa es el shadowsize=n, el cual cambia el


tamaño de la sombra y por defecto es 3pt. shadowangle=ang se usa
para ubicar el ángulo de la sombra, por defecto es -45, pero se puede
usar entre -360 y 360 grados. Por último está shadowcolor=color el
cual se usa para poner color a la sombra que por defecto es darkgray.
2

fillcolor=blue, shadow=true]
{\white \Huge $\Lambda$}}

Λ \rput(1,0.5)
{\pscirclebox[fillstyle=solid,
fillcolor=red, shadow=true,
shadowangle=45]
1
Ω Φ {\white \Huge $\Pi$}}
\rput(0.5,1)
{\pscirclebox[fillstyle=solid,
Π fillcolor=cyan, shadow=true,
shadowcolor=yellow]
{\white \Huge $\Omega$}}
0
\rput(1.5,1)
0 1 2
{\pscirclebox[fillstyle=solid,
fillcolor=magenta, shadow=true,
\psset{unit=1.5} shadowsize=5pt]
\begin{pspicture}(0,0)(2,2) {\white \Huge $\Phi$}}
\malla \end{pspicture}
\rput(1,1.5)
{\pscirclebox[fillstyle=solid,

1.8.3. Texto sobre curvas


Para aplicar este efecto usamos la instrucción:

\pstextpath[pos]{curva}{texto}
1. Gráficos con PSTricks 45

El argumento pos puede tomar los siguientes valores: l para ubicar


el texto a la izquierda de la curva, [c] para ubicarlo al centro, y por
último [r] para ubicarlo a la derecha. Se puede usar cualquier curva
de PSTricks (circunferencia, polígonos, rectas, etc), para el parámetro
curva.

Ejemplo.
4

es para c
r on
il b
rsid oc
3

e
Ser

iv er
ad
Un

2
Del
Q
u i n dí
r es
yc

1
ib

l
on

oc r
er p se
0
ar a
0 1 2 3 4

\psset{unit=1.5}
\begin{pspicture}(0,0)(4,4)\malla
\pstextpath[c]{\psarcn[linestyle=none]
(2,2){1.7cm}{180}{0}}{\Huge \green \bf Universidad }
\rput(2,2){\Huge \green \bf Del}
\pstextpath[c]{\psarc[linestyle=none]
(2,2){1.7cm}{180}{0}}{\Huge \green \bf Quindío}
\pstextpath[c]{\psarcn[linestyle=none]
(2,2){3.7cm}{180}{0}}{\Huge \blue \bf
Ser libres para conocer}
\pstextpath[c]{\psarc[linestyle=none]
(2,2){3.7cm}{180}{0}}
{\Huge \blue \bf y conocer para ser libres}
46 1.8. Manejo de texto

\end{pspicture}

Ejemplo:
2

Es función s
ta osa in(
x)
es
1

la h e r m
0
0 1 2 3 4 5 6

\psset{unit=1.8cm}
\begin{pspicture}(0,0)(6,2)\malla
\pstextpath[c]{\pscurve[linestyle=none]
(0,1.5)(1.5,0.5)(4,1.5)(6,0.5)}
{\Huge Esta es la hermosa función $\sin (x)$}
\end{pspicture}

1.8.4. Texto con efectos especiales


Como ya hemos visto podemos agregar color, tamaño y forma al texto,
ahora con la instrucción pscharpath agregaremos efectos en el con-
torno del texto:

\pscharpath[par]{texto}

Ejemplo:

\pscharpath[linestyle=dashed]{ \Huge Universidad del Quindío}

\pscharpath[linestyle=none, fillstyle=gradient]
{ \Huge Universidad del Quindío}
1. Gráficos con PSTricks 47

1.9 Trazado de curvas

En la sección 1.5.1 trazamos curvas con los comandos pscurve, pse-


curve, psccurve, sin embargo, podemos tener algunas limitantes dado
que la curva resultante no necesariamente es la que debería pasar por
los puntos indicados. Para ello, PSTricks diseñó las siguientes fun-
ciones especializadas en la interpolación de puntos:

Primero debemos designar la lista de puntos que vamos a dibujar, eso


lo hacemos con el comando:

\savedata{\fun}[{x1,y1},...{xn,yn}]

Una vez guardados los puntos procedemos a dibujarlos, eso lo logramos


con el siguiente comando:

\dataplot[par]{\fun}

Con la opción \fun le asignamos cualquier nombre a la lista de puntos,


siempre que no sea un comando LATEX. La función readdata hace
el mismo efecto que savedata, pero ésta lo puede leer de un archivo.
Si observamos, la gráfica no es exacta, debido a que sólo usamos 10
puntos, pero si utilizamos 100, nuestro gráfica sería muy exacta pero
consumiría más recursos del sistema. Con este comando podemos car-
gar los puntos desde un archivo y estos pueden ser tomados desde otro
programa como el Matematica.

Ejemplo:
48 1.9. Trazado de curvas

2 f (x) = esin(x)

0 1 2 3 4
\psset{unit=1}
\begin{pspicture}(0,0)(5,3)
\psaxes[linewidth=0.04,dx=1.8cm,
dy=1.8cm]{<->}(0,0)(5,0)(0,3)
\savedata{\funcion}[{0,1}, {0.36,1.43},
{0.87,2.15}, {1.51,2.71}, {2.26,2.15},
{2.76,1.43}, {3.13,1.0}, {4.06,0.46},
{4.45,0.3}, {5.032,0.38}]
\dataplot[linewidth=0.01, plotstyle=curve,
linecolor=red]{\funcion}
\rput(3.8,2){\large $f(x)=e^{\sin (x)}$}
\end{pspicture}

1.9.1. Curvas a partir de su ecuación


Para graficar una curva, lo ideal es tener los puntos a partir de la
ecuación, para eso PSTricks implementa la siguiente función:

\psplot[op]{x1}{x2}{fun}

La cual grafica una curva con el dominio (x1 , x2 ), la función f un debe


entrarse en notación sufija de PostScript, la cual mostraremos en el
cuadro 1.11.

Sin embargo, es necesario tener presente que siempre se debe usar la


variable x, las funciones seno y coseno sólo aceptan grados sexages-
imales. La función psplot sólo admite computos simples, por lo que
no podemos graficar funciones muy complejas. Se debe tener especial
1. Gráficos con PSTricks 49

Sintáxis Significado
x neg −x
x y add x+y
x y sub x−y
x y mul x.y
x
x y div y
x y exp xy

x sqrt x
x log log10 x
x ln ln x
x sin sin x
x cos cos x

Cuadro 1.11: Principales funciones de PostScript

cuidado con las funciones que presenten asíntotas, pues generan un


error (división por cero) y debemos sacarlas del dominio.

Ejemplo:

4 r f (x) = sin(100x)

3 r f (x) = x+1
x2 +1

2
1

−4 −3 −2 −1 1 2 3 4
−1
−2 r f (x) = ex
−3 r f (x) = 1
x
−4

\psset{unit=0.4}
\begin{pspicture}(-5,-5)(8,5)%\malla
50 1.9. Trazado de curvas

\psaxes[linewidth=0.04,dx=0.71cm,
dy=0.71cm]{<->}(0,0)(-5,-5)(5,5)
\psplot[linewidth=0.03, plotstyle=curve,
linecolor=blue]{-5}{5}{x 100 mul sin}
\psplot[linewidth=0.03, plotstyle=curve,
linecolor=green]{-5}{5}{ x 1 add x 2 exp 1 add div}
\psplot[linewidth=0.03, plotstyle=curve,
linecolor=magenta]{-5}{1.5}{2.7 x exp}
\psplot[linewidth=0.03, plotstyle=curve,
linecolor=yellow]{-5}{-0.2}{1 x div}
\psplot[linewidth=0.03, plotstyle=curve,
linecolor=yellow]{0.2}{5}{1 x div}
\psdots[dotstyle=square*, linecolor=blue](4,4)
\rput(6.2,4){$f(x)=\sin (100x)$}
\psdots[dotstyle=square*, linecolor=green](4,3)
\rput(6,3){$f(x)=\frac{x+1}{x^2 + 1}$}
\psdots[dotstyle=square*, linecolor=magenta](4,-2)
\rput(6,-2){$f(x)=e^x$}
\psdots[dotstyle=square*, linecolor=yellow](4,-3)
\rput(6,-3){$f(x)=\frac{1}{x}$}
\end{pspicture}

1.9.2. Curvas Paramétricas

El comando parametricplot es muy similar psplot, sólo se requiere


dar un dominio y una función paramétrica.

\parametrcplot[par]{t1}{t2}{x(t)y(t)}

El parámetro par se usa para las opciones de línea que ya hemos us-
ado, (t1 , t2 ) es el dominio de la función y las funciones x(t), y(t) las
cuales se deben escribir con la sintaxis de PostScript, una seguida de
la otra sin comas ni puntos. (vea el cuadro 1.11).

Veamos los siguientes ejemplos:


1. Gráficos con PSTricks 51

-1

-2

-3
-3 -2 -1 0 1 2 3

\psset{unit=2}
\begin{pspicture}(-3,-3)(3,3)\malla
\rput(1.5,1.5){\parametricplot[linewidth=0.1,
plotpoints=300]{0}{360}{2 t mul sin t cos mul
2 t mul sin t sin mul}}
\rput(-2.5,1.5){\parametricplot[linewidth=0.1,
plotpoints=300]{0}{360}{0.5 1.5 t cos mul add t
cos mul 0.5 1.5 t cos mul add t sin mul}}
\rput(-1.5,-2){\parametricplot[linewidth=0.1,
plotpoints=300]{0}{360}{0.5 1.5 t cos mul add t
sin mul 0.5 1.5 t cos mul add t cos mul}}
\rput(1.5,-1.5){\parametricplot[linewidth=0.1,
plotpoints=300]{0}{360}{1.5 t sin mul 1.5 t cos mul}}
\end{pspicture}

1.9.3. Regiones sombreadas


Para implementar sombreado de regiones entre curvas, PSTricks dispone
de la función pscuston la cual nos permite dibujar una textura entre
dos curvas, que pueden ser psline, pscurve o psecurve, en realidad
se puede hacer sobre cualquier tipo de curva, teniendo cuidado puesto
52 1.9. Trazado de curvas

que se pueden producir graves mensajes de error. Veamos la sintaxis:

\pscuston[par]{curvas \fill[op]}
La función rellena la región limitada por las curvas con las opciones
5 de llenado implementadas en fill[par].veamos un ejemplo:

4
\begin{pspicture}(0,0)(6,5)
3 \pscustom[linestyle=none]
{\pscurve(0,0)(2,3)
2 (3,3.5)(4,3)(6,0)
\fill[fillstyle=solid,
1 fillcolor=lightgray]}
\psaxes(6,4)
0 \pscurve(0,0)(2,3)
0 1 2 3 4 5 6
(3,3.5)(4,3)(6,0)
\psset{unit=0.8} \end{pspicture}

Veamos un ejemplo de relleno entre dos curvas:

\begin{pspicture}(0,0)(6,7)
\pscustom[linestyle=none]{
6 \psline(1,0.1)(1,1.5)
\pscurve(1,1.5)(2,2.5)(3,4)(4,6)
5 \psline(4,6)(4,0.5)
\psline(4,0.5)(0,0)
4 \fill[fillstyle=vlines ]}
\psaxes{->}(6,7)
3 \pscurve(0,1)(1,1.5)(2,2.5)
(3,4)(4,6)(4.5,6.5)
\psline(4,0.5)(0,0)
2
\psline(4,0.5)(5,0.65)
\psline[linestyle=dashed]
1 (1,0.1)(1,1.5)
\psline[linestyle=dashed]
0 (4,0.5)(4,6)
0 1 2 3 4 5 \end{pspicture}
\psset{unit=0.6}

En el ejemplo anterior podemos observar los siguientes detalles:


1. Gráficos con PSTricks 53

• En primer lugar, los puntos de las curvas deben seguir una


secuencia, en este caso primero se ubica la línea recta verti-
cal \psline(1,0.1)(1,1.5), luego aparece la curva (que es la
más importante); \pscurve(1,1.5)(2,2.5)(3,4)(4,6), poste-
riormente la otra recta vertical; \psline(4,6)(4,0.5) y por úl-
timo la recta \psline(4,0.5)(0,0), que hace las veces de curva
inferior, que en otros casos puede ser otra curva o el mismo eje
x;
• Luego de dibujar la región sombreada, podemos redibujar las
curvas e inclusive agregarles más detalles, como por ejemplo hac-
erlas más largas o asignarles etiquetas.

Ejemplo:
6
5
4
3
2

−4 −3 −2 −1 0 1 2 3 4
\psset{unit=0.6}
\begin{pspicture}(-4,0)(4,5)
\pscustom[linestyle=none]{
\psline(-3,1)(-3,3)
\pscurve(-3,3)(-2,1.5)(-1,2)(0,4)(1,2)(2,1.5)(3,3)
\psline(3,3)(3,1)
\pscurve(3,1)(2,0.5)(1,0.8)(0,0)(-1,0.8)(-2,0.5)(-3,1)
\fill[fillstyle=solid, fillcolor=lightgray]}
\psaxes[linewidth=0.04,Oy=1](0,0)(-4,0)(4,5)
\psline[linestyle=dashed](-3,0)(-3,3)
\psline[linestyle=dashed](3,3)(3,0)
\pscurve(-3,3)(-2,1.5)(-1,2)(0,4)(1,2)(2,1.5)(3,3)
\pscurve(3,1)(2,0.5)(1,0.8)(0,0)(-1,0.8)(-2,0.5)(-3,1)
\end{pspicture}
54 1.10. Herramientas para árboles, grafos y diagramas

1.10 Herramientas para árboles, grafos y dia-


gramas
PSTricks ofrece una variada gama de herramientas para crear gráficos
tipo árboles y diagramas. Para realizar este tipo de gráficos se han
dividido los comandos en 3 tipos; Nodos, Conectores y Etiquetas.

1.10.1. Nodos
En el cuadro 1.12 observaremos los distintos tipos de nodos:

Nodo Descripción
\pnode(x,y){nom} Con él ubicamos en la coordenada (x, y) un
nodo y le asignamos un nombre con nom
\dotnode[op](x,y){nom} Este nodo es similar al anterior, pero el
nodo aparece con forma de punto y se le
asigna un nombre con nom . Además que
se puede agregar opciones de puntos como
las vistas en la cuadro 1.2
\cnode[op](x,y){r}{nom} En este caso, el nodo es de forma circular
con un radio r.
\Cnode[op](x,y){nom} Es similar al anterior, pero el radio se
establece de antemano con el parámetro
\psset{radius=...}.
\rnode{nom}{texto} En este caso se dibuja un borde rectangu-
lar invisible, y se tiene la posibilidad de
agregar texto, que puede ser en modo nor-
mal o modo matemático. Este comando no
tiene el característico punto (x, y), así que
debemos usar el comando \rput para ubi-
carlo.

Cuadro 1.12: Nodos de PSTricks

La tabla 1.13 muestra otros tipos de nodos similares a rnode con


formas geométricas:

1.10.2. Conectores
A continuacion mostraremos los diferentes tipos de conectores con su
respectivo ejemplo, tanto del nodo como de su conector:
1. Gráficos con PSTricks 55

Nodo Descripción
\trinode[op]{nom}{texto} Nodo en forma triangular.
\ovalnode[op]{nom}{texto} Nodo en forma ovalada.
\dianode[op]{nom}{texto} Nodo en forma de rombo.
\circlenode[op]{nom}{texto} Nodo en forma circular.

Cuadro 1.13: Nodos tipo \rnode de PSTricks

Conectores \ncline.

La estructura básica de un conector es la siguiente:

\ncline[par]{flechas}{n1}{n2}

Con los parámetros par podemos cambiar la forma del conector (líneas
punteadas, guiones, etc), el segundo parámetro es el tipo de flechas y
los dos últimos son el nombre de los conectores, en este caso el conector
va de n1 a n2.
5

4
\psset{unit=0.5}
Pt \begin{pspicture}(0,0)(6,4)
3 \malla
2
\rput(3,3){\circlenode{P1}{$P_t$}}
\rput(1,1){\circlenode{a1}{$a_1$}}
1
a1 a2 \rput(5,1){\circlenode{a2}{$a_2$}}
0
\ncline{->}{P1}{a1}
0 1 2 3 4 5 6 \ncline{<-}{P1}{a2}
\ncline{<->}{a1}{a2}
\end{pspicture}

Conectores \ncarc.
Es similar al anterior, pero los nodos se unen por medio de arcos. El
usuario debe tener en cuenta que los arcos se construyen como un
parámetro arcangle, el cual determina el ángulo entre arco y la línea
recta que une los nodos, su valor por defecto es 8 grados sexagesimales.
56 1.10. Herramientas para árboles, grafos y diagramas

4
\begin{pspicture}(0,0)(6,5)\malla
Pt \rput(1,4){\circlenode{P1}{$P_t$}}
3
a2 \rput(1,1){\trinode{a1}{$a_1$}}
2
\rput(5,3){\ovalnode{a2}{$a_2$}}
\ncarc[arcangle=250]{<->}{P1}{a1}
1 \ncarc{<-}{P1}{a2}
a1 \ncarc{<->}{a1}{a2}
0
0 1 2 3 4 5 6 \end{pspicture}
\psset{unit=0.6}

Conectores \ncdiag.
En este caso se une los nodos con un segmento diagonal, además se
pueden usar las opciones \armA,\armB, con los cuales se puede cambiar
la longitud del brazo de salida y de llegada, que por defecto es 10pt.
\angleA,\angleB, son los ángulos de llegada y salida del conector y su
valor por defecto es 0. Igualmente, podemos usar la opción linearc
que se utiliza para vértices redondeados.
5

\malla
4
Pt a2 \rput(2,4){\dianode{P1}{$P_t$}}
3 \rput(2,1){\dianode{a1}{$a_1$}}
2
\rput(5,4){\dianode{a2}{$a_2$}}
\ncdiag[armA=15pt, armB=15pt,
1
a1 angleA=45,angleB=90]{<->}{P1}{a2}
0
\ncdiag[angleA=270,angleB=270]
0 1 2 3 4 5 6 {<->}{a2}{P1}
\ncdiag[angleA=180,angleB=180,
\psset{unit=0.6} linearc=10pt]{<->}{a1}{P1}
\begin{pspicture}(0,0)(6,5) \end{pspicture}

Conectores \ncdiagg.
Es igual al anterior, pero sin el brazo para el segundo nodo.
5

\begin{pspicture}(0,0)(6,5)\malla
4
Pt a2 \rput(1,4){\dianode{P1}{$P_t$}}
3 \rput(3,1){\dianode{a1}{$a_1$}}
2
\rput(5,4){\dianode{a2}{$a_2$}}
\ncdiagg[angleA=0,angleB=90]{->}
1
a1 {P1}{a2}
0
\ncdiagg[angleA=180,angleB=180,
0 1 2 3 4 5 6 linearc=10pt]{->}{a1}{P1}
\psset{unit=0.6} \end{pspicture}
1. Gráficos con PSTricks 57

Conectores \nccurve.
Este conector traza curvas en forma de Bézier, se debe tener cuidado
en la posición de los nodos, pues si están ubicados muy cerca, la curva
parecerá una recta.
5

\begin{pspicture}(0,0)(6,5)\malla
4
Pt \rput(2,4){\dianode{P1}{$P_t$}}
\rput(1,1){\trinode{a1}{$a_1$}}
3
a2 \rput(6,3){\ovalnode{a2}{$a_2$}}
2 \nccurve[angleA=45,angleB=90]
{<->}{P1}{a2}
1
a1 \nccurve[angleA=270,angleB=270]
0 {<->}{a2}{P1}
0 1 2 3 4 5 6 \nccurve[angleA=180,angleB=180]
{<->}{a1}{P1}
\end{pspicture}
\psset{unit=0.6}

Conectores \ncbar.
Este conector tiene la particularidad de que forma ángulos rectos entre
los conectores y los nodos, si es necesario se extienden los brazos de
los conectores, además el ángulo de llegada y el de salida son el mismo
y se controlan con el parámetro angleA.
5

\psset{unit=0.6}
4
Pt \begin{pspicture}(0,0)(6,5)\malla
\rput(2,4){\dianode{P1}{$P_t$}}
3
a2
\rput(5,1){\trinode{a1}{$a_1$}}
2 \rput(6,3){\ovalnode{a2}{$a_2$}}
\ncbar[angleA=90]{<->}{P1}{a2}
1
a1 \ncbar[angleA=270]{<->}{a2}{P1}
0 \ncbar[angleA=180]{<->}{a1}{P1}
0 1 2 3 4 5 6 \end{pspicture}

Conectores \ncangle.
Es similar al anterior, pero los conectores se unen por medio de ángulos
rectos únicamente. Para controlar la forma, se usan los parámetros
armA,armB,angleA,angleB y linearc.
58 1.10. Herramientas para árboles, grafos y diagramas

\rput(3,4){\dianode{P1}{$P_t$}}
4
Pt \rput(5,1){\dianode{a1}{$a_1$}}
3 \rput(1,2){\dianode{a2}{$a_2$}}
\ncangle[angleA=180, angleB=180]
2
a2 {->}{P1}{a2}
\ncangle[angleA=270, angleB=270]
1
a1 {<->}{a2}{a1}
0 \ncangle[angleA=0, angleB=270]
0 1 2 3 4 5 6 {<->}{a2}{P1}
\ncangle[angleA=90, angleB=0]
{<->}{a1}{P1}
\psset{unit=0.6} \end{pspicture}
\begin{pspicture}(0,0)(6,5)\malla

Conectores \ncangles.
Tiene el mismo efecto que \ncangle , pero usa un segmento adicional
para unir los nodos.
3

\begin{pspicture}(0,0)(4,3)\malla
2
a2 \rput(1,1){\dianode{a1}{$a_1$}}
\rput(3,2){\dianode{a2}{$a_2$}}
\ncangles[angleA=180,
1
a1 angleB=180]{->}{a1}{a2}
\ncangles[angleA=90,
0
0 1 2 3 4 angleB=0]{<->}{a2}{a1}
\end{pspicture}
\psset{unit=0.6}

Conectores \ncloop.
Este conector es útil para hacer loops en grafos, se puede cambiar el
parámetro loopsize que por omisión es 1cm. Para este tipo de gráfico
es mejor usar nccircle.
5

\psset{unit=0.6}
4
Pt \begin{pspicture}(0,0)(6,5)\malla
3 \rput(3,4){\ovalnode{P1}{$P_t$}}
\rput(5,1){\ovalnode{a1}{$a_1$}}
2
a2 \rput(1,2){\ovalnode{a2}{$a_2$}}
\ncloop[angleA=0, angleB=45,
1
a1 loopsize=1cm,
0 linearc=0.1]{->}{a1}{a1}
0 1 2 3 4 5 6 \ncloop[angleA=90, angleB=0,
linearc=0.1]{->}{P1}{P1}
1. Gráficos con PSTricks 59

\nccurve[angleA=270, \nccurve[angleA=90,
angleB=270]{<->}{a2}{a1} angleB=0]{<->}{a1}{P1}
\nccurve[angleA=0, \end{pspicture}
angleB=270]{<->}{a2}{P1}

Conectores \nccircle.
Además de la sintaxis normal de los conectores, en el caso de \nccircle
se debe adicionar un parámetro más que corresponde al radio del loop.
La separación entre el arco y el borde del nodo se puede determinar
por el parámetro nodesepA.
5

\rput(1,2){\ovalnode{a2}{$a_2$}}
4
Pt \nccircle[angleA=200,
3 nodesepA=0pt ]{->}{a1}{0.4cm}
\nccircle[angleA=90,
2
a2 nodesepA=0pt ]{->}{a2}{0.5cm}
\nccircle[angleA=10,
1
a1 nodesepA=0pt ]{->}{P1}{0.5cm}
0 \nccurve[angleA=0,
0 1 2 3 4 5 6 angleB=180]{<->}{a2}{a1}
\nccurve[angleA=90,
\psset{unit=0.6} angleB=270]{<->}{a2}{P1}
\begin{pspicture}(0,0)(6,5) \nccurve[angleA=90,
\malla angleB=270]{<->}{a1}{P1}
\rput(3,4){\ovalnode{P1}{$P_t$}} \end{pspicture}
\rput(5,1){\ovalnode{a1}{$a_1$}}

1.10.3. Etiquetas
Las etiquetas se le asignan a los conectores de los diagramas, deben
ubicarse después de construir el conector, y se asume que el conector
va de izquierda a derecha.

La tabla 1.14 muestra otros tipos de nodos similares a rnode con for-
mas geométricas:

Aquí mostraremos los tipos de etiquetas y los parámetros opcionales


como nrot . En el siguiente ejemplo ubicamos etiquetas con el parámetro
\npos, que es un número entre 0 y 1 y determina donde aparece la
etiqueta. El comando * provoca que la etiqueta borre los objetos que
están debajo de ella, en caso contrario, la etiqueta será transparente.
60 1.10. Herramientas para árboles, grafos y diagramas

Etiqueta Descripción
\ncput[op]{etiqueta} La etiqueta va sobre la línea del
conector.
\naput[op]{etiqueta} La etiqueta va encima del conector.
\nbput[op]{etiqueta} La etiqueta va debajo del conector.
\tvput[op]{etiqueta} La etiqueta va en la misma linea del
conector. Se usa en conectores verti-
cales.
\tlput[op]{etiqueta} Igual a la anterior solo que la etiqueta
se ubica a la izquierda del conector.
\tlput[op]{etiqueta} En este caso la etiqueta se ubica a la
derecha del conector.

Cuadro 1.14: Etiquetas para conectores en PSTricks


5

\malla
4
β2 a2 \rput(1,2.5){\ovalnode{P1}
{$P_t$}}\rput(5,1){\ovalnode{a1}
3
{$a_1$}}\rput(5,4)
Pt α1 {\ovalnode{a2}{$a_2$}}
2
γ3 \nccurve[angleA=0, angleB=0]{<->}
{a2}{a1}\ncput*{$\alpha_1$}
1
a1 \nccurve[angleA=90, angleB=0]
0
{<->}{a2}{P1}
0 1 2 3 4 5 6 \ncput*[npos=0.5]{$\beta_2$}
\nccurve[angleA=270, angleB=0]
{<->}{a1}{P1}
\begin{multicols}{2} \ncput*[npos=0.7]{$\gamma_3$}
\psset{unit=0.6} \end{pspicture}
\begin{pspicture}(0,0)(6,5)

En el siguiente ejemplo se usará la etiqueta \naput y \nbput con


el parámetro labelsep, la cual nos determina la separación entre el
conector y la etiqueta, por defecto es 0.5pt.
5

4
Pt \psset{unit=0.6}
3 \begin{pspicture}(0,0)(6,5)
ξ \malla
λ
2
a1 a2 \rput(3.5,4){\dianode{P1}{$P_t$}}
\rput(1,2){\dianode{a1}{$a_1$}}
1
\rput(4,2){\dianode{a2}{$a_2$}}
0 \ncbar[angleA=0, angleB=180]
0 1 2 3 4 5 6 {->}{P1}{a2}
1. Gráficos con PSTricks 61

\naput[labelsep=0.3pt]{$\xi$} \end{pspicture}
\ncbar[angleA=90]{->}
{a1}{a2}\nbput{$\lambda$}

Para el siguiente caso, usaremos la etiqueta \tvput con el parámetro


nrot, el cual determina la rotación de la misma con un ángulo entre
-360 y 360 grados sexagesimales, por defecto dicho parámetro es cero.
5

\psset{unit=0.6}
4
a2 \begin{pspicture}(0,0)(6,5)
to \malla
rec
3

or ξ \rput(5,1){\ovalnode{P1}{$P_t$}}
2 inc \rput(1,1){\ovalnode{a1}{$a_1$}}
\rput(5,4){\ovalnode{a2}{$a_2$}}
1
a1 Pt \ncline{->}{P1}{a2}\tvput{$\xi$}
0 \ncline{->}{a1}{a2}
0 1 2 3 4 5 6 \naput*[nrot=35]{incorrecto }
\end{pspicture}

Ahora veremos las etiquetas \tlput, \trput.


5

{\dianode{P1}{$P_1$}}
4
P1 ξ P2 \rput(1,1)
3 {\ovalnode{a1}{$a_1$}}
\rput(5,1)
ψ ϕ
2 {\ovalnode{a2}{$a_2$}}
\rput(5,4)
1
a1 a2 {\dianode{P2}{$P_2$}}
0 \ncline{->}
0 1 2 3 4 5 6 {P1}{P2}\ncput*{$\xi$}
\ncline{->}
{P1}{a1}\tlput{$\psi$}
\psset{unit=0.6} \ncline{->}
\begin{pspicture}(0,0)(6,5) {P2}{a2}\trput{$\varphi$}
\malla \end{pspicture}
\rput(1,4)

1.10.4. Árboles
La sintaxis de un árbol es la siguiente:

\pstree[par]{raiz}{ramas}
62 1.10. Herramientas para árboles, grafos y diagramas

Para implementar un gráfico de árbol debemos tener en cuenta la ubi-


cación de la raíz y las ramas, además la forma de ubicar los conectores.
El cuadro 1.15 ilustrará los tipos de nodos.

Nodo Descripción
\Tp[op] Nodo invisible.
\Tdot[op] Nodo en forma de punto.
\Tf[op] Nodo en forma de cuadro.
\Tfan[op] Nono invisible conectado a su nodo prede-
cesor por una figura triangular.
\Tc[op]{r} Nodo circular con radio r.
\TC[op] Igual al anterior pero el radio se establece
por defecto con el parámetro radius en el
psset{...}. Por omisión es 2.5mm
\Tr[op]{texto} Nodo rectangular invisible con texto.
\Tcircle[op]{texto} Nodo circular con texto.
\Toval[op]{texto} Nodo ovalado con texto.
\Ttri[op]{texto} Nodo triangular con texto.
\Tdia[op]{texto} Nodo en forma de rombo con texto.
\Tn[op]{texto} Nodo con texto pero conectado a su prede-
cesor por una línea invisible. Sólo se puede
usar en las hojas del árbol no en su raíz.

Cuadro 1.15: Nodos para los árboles en PSTricks

Para el manejo de árboles, se debe tener especial cuidado con la ubi-


cacion de hojas y subarboles. Al implementarlos, nos damos cuenta
que es fácil caer en erorres por la ubicacón incorrecta de los nodos.
6

5 \psset{unit=0.6}
\begin{pspicture}(0,0)(6,6)
4
\rput[tl](1.5,5.5)
{\pstree{\TC}{\Tdia{$h$}
\Tdot \pstree{\TC}{\Tc{1mm}
3
h b \Ttri{} }} }

0
0 1 2 3 4 5 6
1. Gráficos con PSTricks 63

Además de los tipos de nodos, podemos controlar la forma en que


se crea el árbol, por ejemplo, si queremos que nuestro árbol sea de
derecha a izquierda o de abajo hacia arriba, etc, sólo cambiamos las
opciones que se muestran en el cuadro 1.16.

Nodo Descripción
treemode= Determina la dirección del árbol,
Dconstruye el árbol hacia abajo, U lo
construye hacia arriba, R y L derecha e
izquierda.
edge= Determina el tipo de conector (\ncline,
\ncarc,etc ) .
nodesep= Es la distancia entre el nodo y el conector,
por defecto es 0pt.
levelsep= Determina la distancia entre los niveles de
un árbol, por defecto es 2cm.
treesep= Me indica la distancia entre los descendi-
entes de un mismo nodo, por defecto es
0.75cm.

Cuadro 1.16: Parámetros para el trazado de árboles

C \psset{unit=0.6}
\begin{pspicture}(0,0)(6,6)
\rput[tl](1.5,5.5)
R {\pstree[levelsep=1cm,
arrows=->]{\Tcircle{$\mathbb{C}$}}
Q { \pstree{\Tcircle{$\mathbb{R}$}}
I
{\pstree{\Tcircle{$\mathbb{Q}$}}
{\pstree{\Tcircle{$\mathbb{Z}$}}
Z {\Tcircle{$\mathbb{N}$} } }
\Tcircle{$\mathbb{I}$}} }}
\end{pspicture}
N

En este caso mostraremos que una gráfica hecha con PSTricks se puede
poner en el entorno figure como si fuésemos a cargar un archivo
gráfico. Para el caso el árbol genealógico de los hijos de Borin.1 .
1
J.R.R. Tolkien, Apéndices del Señor de los Anillos. Ediciones Minotauro. 2001
64 1.10. Herramientas para árboles, grafos y diagramas

Balin

Fundin I

Dawlin

Borin Farin

Óin

Gróin

Glóin Gimli

Figura 1.1: Genealogía de los hijos de Borin


1. Gráficos con PSTricks 65

\begin{figure}[htbp]
\centering \psset{unit=1.2}
\begin{pspicture}(0,-6)(13,6)
\rput[tl](0.5,5.5){\pstree[edge=\nccurve,
angleB=180, treemode=R,treesep=2.5cm, arrows=->]
{ \Toval{\scriptsize Borin} }{
\pstree{\Toval{\scriptsize Farin} }
{\pstree{\Toval{\scriptsize Fundin I}}
{\Toval{\scriptsize Balin} \Toval{\scriptsize Dawlin} }
\pstree{\Toval{\scriptsize Gróin}}{\Toval{\scriptsize Óin}
\pstree{
\Toval{\scriptsize Glóin}}{\Toval{\scriptsize Gimli}}}}}}
\end{pspicture}
\caption{Genealogía de los hijos de Borin }
\label{hijosborin}
\end{figure}

1.10.4.1. Etiquetas para los nodos de los árboles

Las etiquetas de los conectores del árbol se ubican exactamente de-


spués del comando de cada nodo, su sintaxis es muy simple ~{etiqueta}.
El parámetro tnpos= posiciona la etiqueta con relación al nodo. b es
abajo (por defecto es b), a arriba y r y l son derecha e izquierda. Con
tnsep= podemos cambiar la distancia entre el nodo y la etiqueta, por
defecto es 5pt. Las etiquetas para los conectores se colocan inmedi-
atamente después del primer nodo, con el comando naput, es decir, si
tenemos dos nodos A y B, se ubicará después del nodo A.

Ejemplo:2

2
J.R.R. Tolkien, El Silmarrillion. Ediciones Minotauro. 2001
66 1.11. Manejo de objetos 3D con PSTricks

Vanyar

Los hermosos

Calaquedi

án
Eldar Noldor
m
aA
ron
Fue
Los Sabios
Elfos No
fuer
on
aA
m án

Avari
Telerin
Moriquendi
Los Elfos del mar

\psset{unit=0.6}
\begin{pspicture}(0,-6)(13,6)
\pstree[treemode=R,levelsep=3.8cm,treesep=2.5,arrows=->]
{\Toval{\scriptsize Elfos}}{
\pstree{\Toval[tnpos=a]{\scriptsize Eldar}
~{ \textit{ \scriptsize Calaquedi}}\naput[nrot=:U]
{\tiny Fueron a Amán} }{\Toval[tnpos=b]
{\scriptsize Vanyar}~{ \textit{
\scriptsize Los hermosos}}
\Toval[tnpos=b]{\scriptsize Noldor}
~{ \textit{ \scriptsize Los Sabios}}
\Toval[tnpos=b]{\scriptsize Telerin}
~{\textit{ \scriptsize Los Elfos del mar}}}
\Toval[tnpos=b]{\scriptsize Avari}~{ \textit{
\scriptsize Moriquendi}}\naput[nrot=:U]{\tiny No fueron a Amán}}
\end{pspicture}

1.11 Manejo de objetos 3D con PSTricks


PSTricks ofrece toda una librería para dibujar objetos tridimensionales
como esferas, planos, vectores, superficies, etc. Para el manejo de esta
1. Gráficos con PSTricks 67

librería es necesario que el usuario esté familiarizado con los conceptos


de Cálculo Multivariado, es decir, con la ubicación de puntos en el
espacio, manejo de ecuaciones en R3 y otros conceptos.

1.11.1. El paquete pst-3dplot


Con este paquete, podemos usar los comandos necesarios para dibujar
los objetos 3D, además, se pueden incluir otros objetos matemáticos
como ecuaciones y objetos 2D. Si usted no tiene este paquete, lo pude
conseguir en la siguiente direccción:

http://ctan.org/tex-archive/
graphics/pstricks/contrib/pst-3dplot/

1.11.2. El eje cordenado 3D


El eje coordenado de la librería es el mismo que podemos encontrar
en cualquier libro de Cálculo, con el eje z perpendicular al eje y y al
eje x: z

x y

Sin embargo, para acceder a este espacio necesitamos un punto de


referencia o punto de visión, imaginemos que estamos parados junto
al eje coordenado; estando allí podemos dar la vuelta, subir y bajar
68 1.11. Manejo de objetos 3D con PSTricks

la mirada, levantar el eje coordenado para observar los objetos desde


abajo, en fin, necesitamos mover la vista para visualizar mejor los ob-
jetos que vamos a dibujar.

Para resolver el problema, PSTricks toma como punto de partida 2


ángulos especiales α y β. El ángulo α representa la rotación horizontal
con valores positivos en sentido antihorario. El ángulo β controla la
rotación vertical u ortogonal del plano. Por defecto, los ángulos son
α = 45 y β = 45, si queremos cambiar el punto de vista del plano,
cambiamos los parámetros en el psset{...}.veamos el ejemplo:
z
z z

x
y

x y y
x

\psset{unit=1.0}
\begin{pspicture}(0,-1)(13,5)
\rput(3,2){\pstThreeDCoor[Alpha=45, Beta=45,
linecolor=red,xMax=3,yMax=3,zMax=3]}
\rput(8,2){\pstThreeDCoor[Alpha=-60, Beta=10,
linecolor=green,xMax=4,yMax=3,zMax=3]}
\rput(11,2){\pstThreeDCoor[Alpha=45, Beta=50,
linecolor=blue,xMax=4,yMax=3,zMax=3]}
\end{pspicture}

En en ejemplo anterior, podemos ver que se pueden cambiar algunos


parámetros, entre ellos esta xMin, xMax, yMin, yMax, zMin, zMax, los
cuales determinan los límites de los ejes con *Min le damos el límite
inferior y con *Max configuramos el límite superior. También podemos
cambiar el ancho de las líneas o su forma. Debemos tener en cuen-
ta donde ubicamos los parámetros Alpha y Beta, si lo hacemos en el
\psset todos los objetos rotarán al unísono con el eje, si lo hacemos
en los parámetros de \pstThreeDCoor, sólo los ejes rotarán, los demás
1. Gráficos con PSTricks 69

objetos no.

1.11.3. Ubicación de objetos con \pstThreeDPut


Este comando es muy similar a rput de la versión 2D, a continuación
la sintaxis:

\pstThreeDPut[par](x,y,z){obj}

Esta orden ubica en la posición (x, y, z) el objeto obj con diferentes


opciones, las cuales mostraremos en los diferentes ejemplos.
z

ξ1
̟2

x y
ζ1

\psset{unit=1.0}
\begin{pspicture}(-6,-3)(6,3)
\pstThreeDCoor[linecolor=red,xMax=4,yMax=4,zMax=3]
\pstThreeDPut(1,2,3){$\varpi_2$}
\pstThreeDPut(2,0,3){$\xi_1$}
\pstThreeDPut(3,3,0){$\zeta_1$}
\end{pspicture}

1.11.4. Puntos
Como ya es sabido, los puntos son de los objetos matemáticos más
usados, PSTricks3D implementa la siguiente función:

\pstThreeDDot[par](x,y,z)

El comando ubica un punto con coordenadas (x, y, z) con las opciones


de colores que ya hemos visto, además del parámetro drawCoor que
70 1.11. Manejo de objetos 3D con PSTricks

puede ser false\true , lo cual provoca que se dibujen las líneas par-
alelas a los ejes. Veamos un ejemplo:

b b

x
b

\psset{unit=1.0, Alpha=80}
\begin{pspicture}(-6,-3)(6,3)
\pstThreeDCoor[linecolor=red,xMax=4,yMax=4,zMax=3]
\pstThreeDDot[drawCoor=true](1,1,2)
\pstThreeDDot[drawCoor=true](0,-2,1)
\pstThreeDDot[drawCoor=true](4,2,-0.5)
\end{pspicture}

1.11.5. Líneas rectas

La sintaxis para una línea en el espacio tridimensional es la siguiente:


\pstThreeDLine[par](x1,y1,z1)(x2,y2,z2)

La cual dibuja una recta del punto (x1 , y1 , z1 ) al punto (x2 , y2 , z2 ), las
opciones son las típicas que hemos visto en la versión 2D.

Ejemplo:
1. Gráficos con PSTricks 71

z
~v3

~v1 ~v2

x y

\psset{unit=1.0, Alpha=45, Beta=45}


\begin{pspicture}(-6,-3)(6,3)
\pstThreeDCoor[xMax=4,yMax=4,zMax=3]
\pstThreeDLine[linewidth=2pt,
linecolor=blue, arrows=->](0,0,0)(1,2,5)
\pstThreeDLine[linewidth=2pt,
linecolor=blue, arrows=->](0,0,0)(-3,2,0)
\pstThreeDLine[linewidth=2pt,
linecolor=blue, arrows=->](0,0,0)(4,0,3)
\rput(-2,0.5){$\vec{v}_1$}
\rput(1.5,0.5){$\vec{v}_2$}
\rput(1,2){$\vec{v}_3$}
\end{pspicture}

Como podemos observar, hemos usado el comando rput, en lugar de


la versión 3D, si usted no conoce la ubicación de los puntos en 3D, lo
puede hacer con la versión 2D sin ningún problema.

1.11.6. Triángulos
Para dibujar triángulos, PSTricks3D implementa el siguiente comando:

\pstThreeDTriangle[par](P1)(P2)(P3)

El parámetro drawCoor que puede ser false\true dibuja las rectas


paralelas a los ejes, fillstyle debe estar en solid para que el trián-
gulo sea llenado, de lo contrario, se dibujará transparente. El color se
escoje con fillcolor . Los parámetros P1,P2,P3 son los puntos de
los vértices del triángulo.
72 1.11. Manejo de objetos 3D con PSTricks

b b

b
b
b
b

x y

\psset{unit=1.0, Alpha=45, Beta=45}


\begin{pspicture}(-6,-3)(6,3)
\pstThreeDCoor[xMax=4,yMax=4,zMax=3]
\pstThreeDTriangle[linewidth=1pt](3,-1,5)(1,1,5)(1,2,5)
\pstThreeDTriangle[drawCoor=true,linecolor=blue,
linewidth=1pt, fillstyle=solid, fillcolor=yellow]
(3,1,2)(1,4,2)(0,2,2)
\pstThreeDTriangle[drawCoor=true,linecolor=red,
linewidth=1pt, fillstyle=solid, fillcolor=green]
(3,0,4)(1,0,1)(0,0,2)
\end{pspicture}

1.11.7. Cuadros y rectángulos

La sintaxis es la siguiente:
\pstThreeDSquare[Op](v1)(v2)(v3)

En este caso, se dibuja un cubo o paralelepípedo imaginario, luego


aparecen los vectores ~v1 , ~v2 y ~v3 . El primer vector determina el pun-
to de origen del cuadro, los otros dos determinan el ancho y largo del
cuadro. Estos vectores en realidad son los puntos finales de los vectores.

Ejemplo:
1. Gráficos con PSTricks 73
z

x y

\psset{unit=1.0, Alpha=45, Beta=15}


\begin{pspicture}(-6,-3)(6,3)
\pstThreeDCoor[xMax=4,yMax=4,zMax=3]
\pstThreeDSquare[fillcolor=blue,fillstyle=solid,
drawCoor=true,dotstyle=*](1,1,3)(0,3,0)(1,0,0)
\pstThreeDSquare[fillcolor=green,fillstyle=solid,
drawCoor=true,dotstyle=*](1,1,1)(4,0,0)(0,5,0)
\end{pspicture}

1.11.8. Cajas

Una caja es un caso especial de los Cuadros de la sección anterior, la


sintaxis es la siguiente:

\pstThreeDBox[par](v1)(v2)(v3)(v4)

El primer punto (punto final de un vector) es el punto de inicio de


nuestra caja, los demás vectores determinan el ancho, el alto y la pro-
fundidad.

Ejemplo:
74 1.11. Manejo de objetos 3D con PSTricks
z

x y

\psset{unit=1.0, Alpha=45, Beta=15}


\begin{pspicture}(-6,-3)(6,3)
\pstThreeDCoor[xMax=4,yMax=4,zMax=3]
\pstThreeDBox[fillcolor=yellow,
fillstyle=solid](0,0,0)(3,0,0)(0,3,0)(0,0,1)
\end{pspicture}

1.11.9. Circunferencias y elipses


En el siguiente gráfico podemos observar los componentes de una
elipse:

a b a
F1 e
b b
e F2
a
r1 r2

Ahora bien, lo que tenemos es: dos focos F1 y F2 , los diámetros a y b


y además la exentricidad determinada por e.

(x − x0 )2 (y − y0 )2
+ =1 (1.1)
a2 b2
1. Gráficos con PSTricks 75

La ecuación 1.1 es la fórmula generalizada de una elipse con centro


en (x0 , y0 ), eje mayor a y eje menor b, (también llamados radios de
la elipse).La exentricidad e determina que tan alargada o deforme es
la elipse y debe ser 0 < e ≤ 1, si e = 1 la elipse se convierte en
una circunferencia. La información anterior es de vital importancia si
necesitamos dibujar elipses o circunferencias.

Además, de esta información, podemos cambiar algunos parámetros


de la elipse como el arco, permitiendo dibujar parte de la elipse o cir-
cunferencia, esto lo logramos cambiando los parámetros que controlan
el ángulo de inicio y el terminal; beginAngle que por defecto es 0 y
endAngle que es 360, éstos valores indican que se dibujará toda la
elipse.

Recuerde que como estamos en el espacio tridimensional, es muy común


que veamos una circunferencia como una elipse o viceversa, es re-
comendable que se ajusten los parámetros de visión (Alpha y Beta)
para que ésta distorsión no cause malos entendidos.

la elipse entonces tiene la siguiente sintáxis:

\pstThreeDEllipse[OP](cx,cy,cz)(ux,uy,uz)(vx,vy,vz)

El primer punto (cx, cy, cz) es el extremo de un vector ~c, este punto
será el centro de nuestra elipse, en la ecuacion 1.1 serían (x0 , y0 ). El
punto (ux, uy, uz) y (vx, vy, vz) son los extremos de los vectores que
me indicarán los valores de a y b.

Ejemplo:
76 1.11. Manejo de objetos 3D con PSTricks

x y

\psset{unit=1.0, Alpha=45, Beta=25}


\begin{pspicture}(-4,-3)(4,3)
\pstThreeDCoor[xMin=-4,xMax=4,yMin=-4,
yMax=4,zMax=3, arrows=<->]
\pstThreeDEllipse[linecolor=blue,
linewidth=1.5pt](0,0,0)(3,0,0)(0,2,0)
\pstThreeDEllipse[linecolor=blue,
linewidth=1.5pt](0,0,0.5)(2.5,0,0)(0,1.5,0)
\pstThreeDEllipse[linecolor=blue,
linewidth=1.5pt](0,0,1)(2,0,0)(0,1,0)
\pstThreeDEllipse[beginAngle=0,endAngle=180,
linecolor=green](0,0,2)(1,0,0)(0,1,0)
\pstThreeDEllipse[beginAngle=180,endAngle=360,
linecolor=magenta](0,0,2)(1,0,0)(0,1,0)
\end{pspicture}

Observe que la última elipse en realidad son dos semicircunferencias,


una verde y la otra magenta, la perspectiva provoca que se vean como
elipses.

1.11.10. Esferas
La sintaxis es la siguiente:

\pstThreeDSphere[OP](x,y,z){r}
1. Gráficos con PSTricks 77

EL comando dibuja una esfera con centro en el punto (x, y, z) y de


radio r, las opciones son las antes estudiadas.
z

x y

\psset{unit=0.8, Alpha=45, Beta=25}


\begin{pspicture}(-4,-3)(4,3)
\pstThreeDCoor[xMin=-4,xMax=4,yMin=-4,
yMax=4,zMax=3, arrows=<->]
\pstThreeDSphere[linewidth=0,
linecolor=green](0,0,2){0.8}
\pstThreeDSphere[linewidth=0,
linecolor=blue](2,0,0){0.8}
\pstThreeDSphere[linewidth=0,
linecolor=blue](0,2,0){0.8}
\end{pspicture}

1.11.11. Curvas paraméntricas en 3D


PSTricks implementa la siguiente función:

\parametricplotThreeD[par](t1,t2)(u1,u2){x(t,u)
y(t,u) z(t,u)}

Sólo es posible usar las variables u y t. Los parámetros t1 , t2 son los


límites de t, u1 , u2 son los límites inferior y superior de u. Recuerde que
x(t, u), y(t, u) y z(t, u) se deben ingresar en la notación PostScript
como lo vimos en la sección 1.9.1.
78 1.11. Manejo de objetos 3D con PSTricks

Ejemplo:

x y

\psset{unit=0.8, Alpha=45, Beta=25}


\begin{pspicture}(-4,-2)(4,4)
\pstThreeDCoor[xMin=-4,xMax=4,yMin=-4,
yMax=4,zMax=3, arrows=<->]
\parametricplotThreeD[linecolor=blue,
linewidth=.25pt,xPlotpoints=200,
plotstyle=curve,arrows=->](0,3.2){
t 360 mul cos t mul
t 360 mul sin t mul t}
\end{pspicture}

Ejemplo:
1. Gráficos con PSTricks 79

x y

\psset{unit=2.6, Alpha=45, Beta=25}


\begin{pspicture}(-2,-2)(2,3)
\pstThreeDCoor[xMin=-2,xMax=2,yMin=-2,
yMax=2,zMax=3, arrows=<->]
\parametricplotThreeD[linecolor=blue,
linewidth=.25pt,xPlotpoints=200,
plotstyle=curve,arrows=->](0,360)(0,360){
u sin t cos mul
u sin t sin mul
u cos}
\parametricplotThreeD[linecolor=blue,
linewidth=.25pt,xPlotpoints=200,
plotstyle=curve,arrows=->](0,360)(0,360){
t sin u cos mul
t sin u sin mul
t cos}
\end{pspicture}
80 1.11. Manejo de objetos 3D con PSTricks

1.11.12. Gráfica de funciones


Para graficar funciones en el espacio, PSTricks implementa la función:

\psplotThreeD[OP](x0,xt)(y0,yt){f(x,y)}

La funcion, recuerden, debe estar en lenguaje PostScript , sólo se


admiten variables x y y. El comando dibuja la gráfica de la función
f (x, y) en el dominio determinado por (x0 , xt ) para x y (y0 , yt ) para la
variable y. Además, se debe tener encuenta los siguientes parámetros
(ver cuadro 1.17 ).

Opción Valor
plotstyle Puede ser dots, line, polygon, curve,
ecurve, ccurve, none (valor por defecto).
y determina la forma de las líneas con que
se dibujá la curva.
showpoints Puede ser false/true y por omisión es
false. Muestra los puntos.
showpoints Puede ser false/true y por omisión es
false. Muestra los puntos.
xPlotpoints y yPlotpoints Por defecto es 25, y determina la cantidad
de puntos a graficar.
hiddenLine Por defecto es false y hace que se dibujen
las líneas.

Cuadro 1.17: Opciones de la función \psplotThreeD

Ejemplo:

\psset{unit=1.5, Alpha=45, Beta=20}


\begin{pspicture}(-3,-1.5)(6,5.5)
\pstThreeDCoor[xMin=-4,xMax=4,yMin=-4,
yMax=4,zMax=3, arrows=<->]
\psplotThreeD[plotstyle=line,linecolor=blue,
yPlotpoints=40,xPlotpoints=30, linewidth=0.5pt]
(-1.5,1.5)(-1.5,1.5)
{
x 2 exp y 2 exp add x 5 div sub
}
1. Gráficos con PSTricks 81

\rput[tl](2,2){$f(x,y)=x^2 + y^2 - \frac{x}{5}$ }


\end{pspicture}

f (x, y) = x2 + y 2 − x
5

x y

Recuerde que usted tiene el control sobre el dominio de las variables x


y y, no sobre la variable z, tenga presente este detalle pues su gráfica
puede salir de la zona delimitada.

Ejemplo:
82 1.11. Manejo de objetos 3D con PSTricks
z

x y

f (x, y) = cos(100x) − sin(100y)

\psset{unit=1.5, Alpha=45, Beta=30}


\begin{pspicture}(-3,-1.5)(3,4)
\pstThreeDCoor[xMin=-4,xMax=4,yMin=-4,
yMax=4,zMax=3, arrows=<->]
\psplotThreeD[plotstyle=line,linecolor=blue,
yPlotpoints=40,xPlotpoints=30, linewidth=0.5pt,
hiddenLine=true](-2,2)(-2,2)
{
x 100 mul cos y 100 mul sin sub
}
\rput[tl](-2,3.5){$f(x,y)=\cos (100x) - \sin (100y) $ }
\end{pspicture}

Ejemplo:
1. Gráficos con PSTricks 83

z
2
f (x, y) = sin (180x)

x y

\psset{unit=1.0, Alpha=45, Beta=30}


\begin{pspicture}(-3,-2)(3,3)
\pstThreeDCoor[xMin=-4,xMax=4,yMin=-4,
yMax=4,zMax=3, arrows=<->]
\psplotThreeD[plotstyle=ecurve,linecolor=blue,
yPlotpoints=40,xPlotpoints=30, linewidth=0.5pt,
hiddenLine=true](-2,2)(-2,2)
{
x 180 mul sin 2 exp
}

\rput[tl](-3,2.5){$f(x,y)=\sin ^2 (180x) $ }
\end{pspicture}

Ejemplo:
84 1.11. Manejo de objetos 3D con PSTricks

z
f (x, y) = y2 − x2

y
x

\psset{unit=1.0, Alpha=60, Beta=30}


\begin{pspicture}(-3,-2)(3,3)
\psplotThreeD[plotstyle=line,linecolor=blue,
yPlotpoints=60,xPlotpoints=60, linewidth=0.5pt,
hiddenLine=true, showpoints=true](-1.3,1.3)(-1.3,1.3)
{
y 2 exp x 2 exp sub
}
\pstThreeDCoor[xMin=-2,xMax=2,yMin=-2, yMax=2,zMax=3, arrows=<->]
\rput[tl](-3,2.5){$f(x,y)=y^2-x^2$ }
\end{pspicture}

Ejemplo:
1. Gráficos con PSTricks 85

1
f (x, y) = 1 − x2 + y 2 3

y
x

\psset{unit=1.0, Alpha=60, Beta=30}


\begin{pspicture}(-3,-2)(3,3)
\psplotThreeD[plotstyle=line,linecolor=blue,
yPlotpoints=60,xPlotpoints=60,
linewidth=0.5pt, hiddenLine=true,
showpoints=true](-1.3,1.3)(-1.3,1.3)
{
1 x 2 exp y 2 exp add 1 3 div exp sub
}
\pstThreeDCoor[xMin=-2,xMax=2,yMin=-2,
yMax=2,zMax=1.5, arrows=<->]
\rput[tl](-3,2.5){$f(x,y)=1-\left(x^2 +y^2
\right)^{\frac{1}{3}}$ }
\end{pspicture}
86 1.11. Manejo de objetos 3D con PSTricks
CAPÍTULO 2
Herramientas para gráficos con
PSTricks

Para muchos usuarios de PSTricks, puede ser tedioso el uso de códigos


más parecidos a un lenguaje de programación como Pascal o C++,
que a un editor de gráficos matemáticos. El usuario de LATEX quiere
que sus gráficos matemáticos queden con la mejor calidad, sin em-
bargo, muchos de ellos no desean ni tienen tiempo de construir una
gráfica matemática con base en instrucciones. Además, hay gráficos
muy sencillos (o muy complejos) que no merecen que se tome el tiem-
po necesario en construirlos de la forma tradicional.

Para este tipo de usuarios, se desarrolló software como el JpicEdt©


y LatexDraw©, estos programas permiten construir gráficos vector-
izados y exportar su código a LATEX y PSTricks. En este capítulo
mostraremos cómo implementar gráficos matemáticos con estos pro-
gramas.

2.1 JpicEdt
Este programa fue desarrollado por Sylvain Rainal del E.N.S.E.A de-
partamento de física. Es un software libre y puede ser redistribuido

87
88 2.1. JpicEdt

y/o modificarlo bajo los términos de la Licencia Pública General de


GNU según es publicada por la Free Software Foundation. Como se
mencionó anteriormente, el software es un editor de gráficos vector-
izados que permite exportar a código PSTricks, Emulated LATEX y
Epic/Eepic.

El JpicEdt fue desarrollado en Java©, el cual debe estar instalado


en el computador previamente. La instalación es muy sencilla, sólo se
hace doble clic en el archivo jpicedt-install-1_4_pre_5.jar, luego,
se procede a dar los parámetros de instalación, el programa se ubi-
cará en su computador automáticamente. Como JpicEdt esta hecho
en Java, puede funcionar en cualquier plataforma (Windows, Linux
y Mac.). Para bajarlo y obtener más información, consulte la página
http://jpicedt.sourceforge.net/site/index.php?language=en.

Figura 2.1: Interfase principal de JPicEdt


2. Herramientas para gráficos con PSTricks 89

2.1.1. Ventanas
JpicEdt tiene 3 ventanas principales, la primera de ella es la de trabajo.

En la parte superior de esta ventana, aparecen varios menús desple-


gables, el primero de ellos permite cambiar la malla o cuadrícula del
área de trabajo, luego aparece un botón para activar o desactivar el
“magnetismo de la malla”, es decir, la forma en como los objetos se
acomodan e los vértices de la malla del área de trabajo. Luego aparece
otro menú desplegable para cambiar la intensidad del magnetismo de
la malla, la cual va de 10 a 0.625; ésta es muy importante para la
construcción de nuestros gráficos matemáticos.

En la parte media de la ventana, se encuentra el área de trabajo, el


cual, esta enmarcado con una malla, en la parte superior e izquierda
se encuentra la regla, una utilidad para medir o referenciar nuestros
gráficos. En la parte inferior izquierda aparece una etiqueta donde se
resalta la posición del mouse sobre el área de trabajo.

Luego aparece la ventana de atributos, la cual, me permite cambiar


las propiedades o atributos de los objetos que se construyan.
90 2.1. JpicEdt

La ventana consta de ocho submenus: Lleno, Rayar, Trazo, Som-


bra, Flechas, Polydots, Text y una opción llamada PSTricks.

Lleno: Con esta opción, podemos


escojer el color de relleno de los
objeto cerrados, es decir, figuras
planas cerradas (círculos, elipses,
polígonos). La ventana muestra
las opciones de colores en paletas
RGB, HSB y colores predefinidos
por PSTricks.

Además, tiene un menú desplegable que permite escojer el tipo de


textura o relleno para nuestros objetos, las opciones que maneja son:
transparente (por defecto), solido, líneas verticales transparentes, líneas
verticales con color de fondo, líneas horizontales transparentes y con
fondo, y dos opciones para trama en forma de ladrillo con fondo trans-
parente y con color de fondo.

Como hemos visto, no debemos preocuparnos por el código en PSTricks


para la inclusión de nuevos colores, JpicEdt lo hace automaticamente,
Además la ventana cuenta con una opción de color reciente, que le
permite al usuario seguir trabajando con los mismos colores.
2. Herramientas para gráficos con PSTricks 91

Rayar: Esta opción permite cam-


biar las formas de las texturas que
se impusieron a los objetos en la
opción de lleno. Tiene tres op-
ciones, la primera, puesta en la
parte superior izquierda, permite
cambiar el ancho de las líneas de
las texturas; si estas son muy an-
chas, se puede obtener un color
sólido.

La segunda opción permite cambiar la separación entre las líneas de


la textura y la última opción modifica el ángulo de inclinación de las
líneas. En la parte inferior se presenta un menú de colores similar a
la pestaña anterior donde se pueden escoger colores de la forma RGB,
HSB y predeterminado por PSTricks.

Trazo: En esta pestaña, encon-


tramos las opciones para el en-
torno de los objetos. Inicialmente
aparece un menu desplegable que
me permite selecionar la forma del
contorno, puede ser invisible, nor-
mal, en guiones y punteada. En la
parte superior derecha aparece la
opción de ancho de la línea.

Los dos comandos en la zona media, son usados para ajustar la sepa-
ración entre los guiones y el ancho de los mismos. Tambien, allí aparece
la opción para la líneas punteadas, con este comando se pueden cam-
biar la separación de los puntos. La opción Overstrike hace que las
líneas pierdan la capacidad de ser transparentes.

Sombra: Esta opción permite aplicarle el efecto de sombra a los ob-


jetos planos cerrados (polígonos, círculos, etc)
92 2.1. JpicEdt

Sólo tiene dos parámetros, el primero modifica el ancho de la sombra


y el segundo el ángulo donde esta se va a proyectar.

Flechas: Permite implementar el


efecto de flechas a las líneas con
las mismas opciones que aparecen
en la sección 1.3.1.1. La pestaña
ofrece la posibilidad de cambiar
el tipo de flecha al comienzo y
al final de la línea, la forma y el
tamaño de la misma.

Polydots: Esta pestaña permite el ángulo de los puntos, tamaño y


activar los puntos de una curva escala.
o una línea recta, la pestaña pre-
senta un menú desplegable con
los tipos de puntos dados por
PSTricks. Las diferentes opciones
de esta pestaña permiten cambiar

Text: Para los efectos de texto,


la pestaña ofrece la posibilidad de
cambiar el punto de referencia de
la etiqueta con el texto,

permitiendo ponerla en la parte inferior, superior, izquierda o derecha,


además, permite cambiar el ángulo de rotación del texto. La pestaña
tambien incluye una herramienta para enmarcar el texto en rectángu-
los o círculos.
2. Herramientas para gráficos con PSTricks 93

PSTricks: En esta pestaña pode-


mos incluir opciones de PSTricks
que el software no maneja, sólo
debemos escribirlas en el espacio
de PS custom y oprimir el botón
aceptar.

2.1.2. Herramientas de edición

La ventana de “Caja de útiles”


presenta las herramientas de edi-
ción básicas para contruir nue-
stros gráficos matemáticos. Inici-
amlente, esta ventana la encon-
traremos junto a las que apare-
cen por omisión cuando el progra-
ma arranca, si no es el caso, vaya
al menú Útiles y allí encontrará
las mismas opciones. Tambien la
podemos encontrar en el menú
Ventanas/Caja de útiles.

Para el manejo de estas herramietas, se debe tener en cuenta que los


objetos a modificarse deben estar seleccionados. En realidad, cualquier
persona que haya tenido contacto con programas como FreeHand o
CorelDraw no tendrá dificultad en manejarlo. Enseguida, mostraremos
el uso de las diferentes herramientas de edición.
94 2.1. JpicEdt

Permite hacer zoom en la gráfica que estamos


construyendo.

Selecciona los objetos que componen la gráfica.

Permite editar los nodos que componen las curvas


Bezier.

Al seleccionar uno o varios obejto, podemos moverlos


con este comando.

Escala los objetos seleccionados, bien sea en forma


vertical u horizontal.

Rota los objetos seleccionados.

Permite la inclusión de texto. Si es texto científico,


recuerde ponerlo entre los comandos “$”

Permite crear líneas rectas.

Herramienta para crear rectángulos.

Herramienta para crear paralelogramos.

Permite construir curvas bezier, el fin de la curva se


logra haciendo clic derecho.

Igual a la anterior, pero la curva bezier es cerrada


2. Herramientas para gráficos con PSTricks 95

Herramienta para la creación de elipses y


circunferencias.

Comando para crear “tortas” o secciones de círculos.

Esta herramienta es similar a la anterior, pero el arco


se une por una cuerda.

Tambien es similar a la anterior, pero sin la cuerda.

Esta herramieta se llama herramienta cerrada, pero


su diferencia consiste en imprimir a la elipse el efecto
de perspectiva.

Torta con efecto de perspectiva.

Arco y cuerda con efecto de perspectiva.

Arco sin cuerda con efecto de perspectiva.

Circunferencia determinada por tres puntos, los


cuales estan sobre la circunferencia.

Torta determinada por tres puntos.

Arco con cuerda determinada por tres puntos.

Arco sin cuerda determinada por tres puntos.


96 2.1. JpicEdt

Curva poligonal abierta “Smood”

Curva poligonal cerrada “Smood”

Curva de interpolación abierta

Curva de interpolación cerrada

Edición de puntos de anclaje para ampliar o


disminuir el tamaño.

2.1.3. Preferencias y configuración


JpicEdt puede ser configurado desde la ventana de preferencias, la
cual, se localiza en el menú Editar/Preferencias; esta opción abre
un menu con los siguientes items.

General: Esta pestaña permite configurar la apariencia de las ven-


tanas, el estilo de estas, así como el idioma; que puede
ser, inglés, francés, español y alemán. Tambien aparece
la fuente y el formato por defecto en que se exportará el
código, recuerde que puede ser PSTricks, emulated LATEX
y Epic/Eepic.

Apariencia: En este item aparecen cinco cajas de chequeado, para


configurar la forma en que apareceran las figuras dibujadas
en el área de trabajo, entre ellas están: Anti-alising, Anti-
alising de texto, Calidad (vs velocidad), Dither Colours y
usar métrica fraccional.

Plantilla/Zoom: La opción permite configurar las opciones del tamaño


de la malla, así como el estilo de la malla (sólido o en
puntos). Tambien se puede configurar la imantación de la
malla y el Zoom.

Colores: Esta pestaña sólo presenta dos items, el color de fondo del
escritorio del programa y el color de la malla.
2. Herramientas para gráficos con PSTricks 97

Repertorios: Esta opción permite configurar las rutas del la carpeta


de archivos temporales y la carpeta de inicio de JpicEdt, la
cual, es necesaria para los archivos temporales que utiliza
el programa.

Shortcuts: La pestaña presenta una lista con los Shortcuts de las


diferentes opciones, menús y herramientas.

Comandos: La opción presenta campos para la configuración de las


rutas de acceso al compilador de LATEX y al programa Yap.
Esto debido a que JpicEdt puede compilar el documento
hecho y ver un previo de su dibujo.

Formato de página Permite configurar las márgenes de la zona de


trabajo.

LATEX Opción que permite configurar algunos parámetros esen-


ciales de PSTricks, además, JpicEdt crea un documento
TEX temporal, el cual puede ser configurado desde esta
pestaña.

Epic/Eepic y PSTrics Estas dos pestañas son muy similares a la


anterior, permiten configurar el archivo temporal que se
compilará, LATEX , Epic/Eepic y PSTrics tienen paquetes
diferentes y pueden ser modificados o actualizados desde
esta pestaña.

2.1.4. Otras herramientas de JpicEdt


Además de las mencionadas, JpicEdt tiene otras utilidades que pueden
ahorrar gran trabajo a los usuarios de PStricks. Inicialmente en los
menús fragmentos/electricity y fragmentos/mechanic se encuen-
tran macros especializados para esa área, en el primero podemos en-
contrar macros como el and, or, capacitor, trancistor y voltage entre
otros. Mientras que en el segundo menú, encontramos dos opciones:
Frame-oxy y shock absorber. A continuación veremos un ejemplo de
estos macros.
98 2.1. JpicEdt

f
I

& =1 &

+ y ≥1

≥1
x
O

Otra de la herramientas y tal vez la más llamativa para los matemáti-


cos, es la posibilidad de graficar curvas de ecuaciones. En el menú
Scrips/math se encuentran tres opciones para hacer este tipo de grá-
ficos, la primera de ellas es add curve la cual, despliega la siguiente
ventana:

Ésta permite incluir una o más curvas en R2 . JpicEdt no usa el co-


mando \psplot para graficar las curvas, el programa usa la misma
ecuación para encontrar los puntos que la componen y luego crear una
curva bezier que emule la curva original. Como podemos apreciar en
la ventana aparece la opción step, la cual, permite ajustar el incre-
mento en el eje x para obtener los puntos necesarios al crear la curva,
2. Herramientas para gráficos con PSTricks 99

si ponemos este parámetro muy grande la curva se vera defectuosa, si


el incremento es muy pequeño la curva se verá más fina pero será más
pesada para el computador.

Tomemos la gráfica de las funciones f y g.

f (x) = sin(x) y g(x) = cos(x)


La función f la graficaremos con la herramienta de JpicEdt y g la
graficaremos usando PSTricks puro.

Con JpicEdt tenemos


y

sin(x)
0,8

0,6

0,4

0,2

−0,0

−0,2

−0,4

−0,6

−0,8

0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5 6,0 6,5 7,0 7,5 8,0 8,5 9,0 9,5
x

Como vemos, la curva se presenta con una excelente calidad, sólo debe-
mos incluir la ecuación de la curva y cambiar los parámetros de colores,
tipos de línea de la curva y oprimir el botón add this curve y listo,
la gráfica se crea automáticamente en la zona de trabajo, inclusive,
ubica en la parte superior derecha una etiqueta con la ecuación y ad-
hiere efectos de sombra.

Ahora lo haremos con PSTriks puro para la función g(x) = cos(x),


usaremos el comando \psplot
100 2.1. JpicEdt

g(x) = cos(x)

1 2 3 4 5 6

Como podemos ver, la gráfica de f y g son muy similares en calidad,


sin embargo, la gráfica de g toma mucho más tiempo en hacerla que
la de f , pues el usuario debe hacer uso de los comandos apropiados
para adecuarla al documento, cambiar el color, los tamaños de letra,
etc. Mientras que en la gráfica de f teniamos una agradable interface
tipo Windows y el tiempo en configurar y hacerla fue mínimo.

Ahora comparemos los códigos, en este caso, PSTriks puro sólo usa
7 líneas de código, mientras que la hecha por JpicEdt1 usa unas 120
líneas. Veamos el código en PStricks puro.

\begin{pspicture}(-1,-1)(6.5,1)
\rput(2,1){$g(x)=\cos (x)$}
\footnotesize
\psaxes[linewidth=0.02]{<->}(0,0)(-1,-1)(6.5,1)
\psplot[linewidth=0.04,linecolor=blue]{0}{6.2}
{ x 50 mul cos }
\end{pspicture}

Además de esta herramienta, JpicEdt tiene en el mismo menú, otra


muy similar a la anterior llamada plot funtion, la cual, hace el mis-
mo proceso pero con una gráfica más sencilla y con parámetros más
simples.

1
Recordemos que JpicEdt exporta en código PSTricks, lo que queremos indicar
es que el código hecho por el programa es más extenso.
2. Herramientas para gráficos con PSTricks 101

Como vemos, en la ventana se piden datos de la función en código Java,


el valor de x mínimo y máximo, y por último, el ancho y el alto de la
gráfica. El siguiente es un ejemplo construido con dicha herramienta.

1.0

-5.0 5.0

-1.0

Además, de gráficas de curvas en coordenadas cartesianas, JpicEdt


permite crear gráficos de curvas paramétricas, en el mismo menú se
encuentra la opción plot parametric, sólo que en este caso se deben
introducir dos funciones en términos de t.

Recuerde que el código para las ecuaciones debe ser en Java. También
se debe introducir el valor mínimo y el máximo de t, el número de
puntos y el ancho y alto de la gráfica. El siguiente ejemplo muestra la
gráfica de la curva paramétrica dada por las ecuaciones x(t) = 2t cos(t)
y y(t) = 2t sin(t), usando un ancho/alto de 50 puntos y 50 puntos de
referencia.
102 2.1. JpicEdt

4.0
2.0

-5.0 5.0 10.0


-2.0
-4.0
-6.0
-8.0

2.1.5. ¿Cómo pasar de JpicEdt a LATEX?

El programa es fácil de manejar, sólo dibujamos con las herramien-


tas ya expuestas, luego en el menú comandos/Latex se hace clic en la
opción Latex, la cual, toma el gráfico hecho y lo convierte en código
PSTricks, para luego compilarlo. Este proceso nos permite ver un pre-
vio del gráfico.

Una vez acabado el trabajo de dibujado, se selecciona todo el gráfi-


co con el menú Edición/Seleccionar todo, luego Edición/copiar.
Ahora, pasamos a nuestro editor de LATEX preferido y le decimos pe-
gar. El código quedará listo para compilarse, recuerde que se debe
tener en el preámbulo del documento los paquetes correspondientes.

2.1.6. Ejemplos en JpicEdt

En este capitulo mostraremos algunos ejemplos hechos en JpicEdt con


su correspondiente código fuente generado por el programa.

Ejemplo de Simulaciones 3D
2. Herramientas para gráficos con PSTricks 103

f (x, y)

(x, y)

Código fuente:

%PSTricks content-type
%(pstricks.sty package needed)
%Add \usepackage{pstricks}
%in the preamble of your LaTeX file
%You can rescale the whole picture
%(to 80% for instance) by using the command %
\def\JPicScale{0.8}
\ifx\JPicScale\undefined\def\JPicScale{1}\fi
\psset{unit=\JPicScale mm}
\psset{linewidth=0.3,dotsep=1,hatchwidth=0.3,
hatchsep=1.5,shadowsize=1,dimen=middle}
\psset{dotsize=0.7 2.5,dotscale=1 1,fillcolor=black}
\psset{arrowsize=1
2,arrowlength=1,arrowinset=0.25,tbarsize=0.7 5,
bracketlength=0.15,rbracketlength=0.15}
\begin{pspicture}(0,0)(88.1,88.58)
\psline{<-}(31,86.58)(31,36.58)
104 2.1. JpicEdt

\psbezier(81,36.58)(81,36.58)(81,36.58)(81,36.58)
\psline{->}(31,36.58)(81,36.58)
\psline{->}(31,36.58)(1,6.58)
\newrgbcolor{userFillColour}{0.8 0.8 0.8}
\psccurve[linecolor=white,fillcolor=userFillColour,
fillstyle=solid,curvature=1.0 0.1 0.0]
(16,11.58)(56,11.58)(86,21.58)(36,31.58)
\newrgbcolor{userFillColour}{0 0.6 1}
\psccurve[linecolor=white,fillcolor=userFillColour,
fillstyle=solid,curvature=1.0 0.1 0.0]
(16,41.58)(56,56.58)(86,51.58)(36,61.58)
\rput(46,59.58){$f(x,y)$}
\psline[linewidth=0,linestyle=dashed,dash=1 1]
(46,56.58)(46,23.58)
\rput(46,21.58){$(x,y)$}
\psline[linewidth=0,linestyle=dashed,dash=1 1]
(18,23.58)(46,23.58)
\psline[linewidth=0,linestyle=dashed,dash=1 1]
(46,23.58)(59,36.58)
\rput{0}(46,56.08){\psellipse[fillstyle=solid]
(0,0)(1,-0.5)}
\rput{0}(46,24.08){\psellipse[fillstyle=solid]
(0,0)(1,-0.5)}
\rput(31,88.58){$z$}
\rput(84,36.58){$y$}
\rput(0,5.58){$x$}
\end{pspicture}

Una de las ventajas de JpicEdt, es la claridad del código PSTricks que


genera, se presta para reformarlo fácilmente. El tamaño de los gráfi-
cos se puede cambiar, sólo se toma el parámetro \JPicScale{1} en el
preámbulo de cada gráfico, si cambiamos el 1 por un 0.5 el tamaño se
reducirá a la mitad, por el contrario, si lo cambiamos por un 1.5 se
duplicará el tamaño.

Ejemplo de gráficos para física


2. Herramientas para gráficos con PSTricks 105

lα r2
b

Ob1 O2

r1 lβ

%PSTricks content-type
%(pstricks.sty package needed)
%Add \usepackage{pstricks} in the
%preamble of your LaTeX file
%You can rescale the whole picture
%(to 80% for instance) by using the command
%\def\JPicScale{0.8}
\ifx\JPicScale\undefined\def\JPicScale{1}\fi
\psset{unit=\JPicScale mm}
\psset{linewidth=0.3,dotsep=1,hatchwidth=0.3,
%hatchsep=1.5,shadowsize=1,dimen=middle}
\psset{dotsize=0.7 2.5,dotscale=1 1,fillcolor=black}
\psset{arrowsize=1 2,arrowlength=1,
%arrowinset=0.25,tbarsize=0.7 5,
%bracketlength=0.15,rbracketlength=0.15}
\begin{pspicture}(0,0)(100.5,40)
\rput{0}(20,19.5){\psellipse[](0,0)(20,-19.5)}
\psline(29,37)(81,11)
\psline(31,3)(77,37)
\rput{90}(85.75,25.12){
\psellipse[](0,0)(14.88,-14.75)}
\psline[linewidth=0.1,linestyle=dashed,dash=1 1]
(86,25)(77,37)
\psdots[linewidth=0.1,linestyle=dashed,dash=1 1]
(86,25)(77,37)
\psline[linewidth=0.1,linestyle=dashed,dash=1 1]
(31,3)(20,20)
\psdots[linewidth=0.1,linestyle=dashed,dash=1 1]
106 2.1. JpicEdt

(31,3)(20,20)
\rput(20,22){$O_1$}
\rput(86,23){$O_2$}
\rput(22,11){$r_1$}
\rput(84,32){$r_2$}
\rput[l](42,32){$l_\alpha$}
\rput[l](48,13){$l_\beta$}
\end{pspicture}

Ejemplo de gráficos en matemáticas en 2D


y

sin(x)
0,8
sin(2x)
0,6
sin(3x)
0,4

0,2

−0,0

−0,2

−0,4

−0,6

−0,8

0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5 6,0
x

%PSTricks content-type
%(pstricks.sty package needed)
%Add \usepackage{pstricks} in
%the preamble of your LaTeX file
%You can rescale the whole
%picture (to 80% for instance) by
%using the command \def\JPicScale{0.8}
\ifx\JPicScale\undefined\def\JPicScale{1}\fi
\psset{unit=\JPicScale mm}
2. Herramientas para gráficos con PSTricks 107

\psset{linewidth=0.3,dotsep=1,hatchwidth=0.3,
hatchsep=1.5,shadowsize=1,dimen=middle}
\psset{dotsize=0.7 2.5,dotscale=1 1,fillcolor=black}
\psset{arrowsize=1 2,arrowlength=1,
arrowinset=0.25,tbarsize=0.7 5,bracketlength=0.15,
rbracketlength=0.15}
\begin{pspicture}(0,0)(144,93)
\newrgbcolor{userFillColour}{0.94 0.94 0.94}
\pspolygon[linestyle=none,fillcolor=
userFillColour,fillstyle=solid](2,9)
(122,9)
(122,89)
(2,89)(2,9)
\psline[linecolor=white,linestyle=dotted]
(11.67,9)(11.67,89)
\psline(11.67,8)(11.67,9.5)
\psline(11.67,88.5)(11.67,89)
\rput(11.67,5){$0.5$}
\psline[linecolor=white,linestyle=dotted]
(21.37,9)(21.37,89)
\psline(21.37,8)(21.37,9.5)
\psline(21.37,88.5)(21.37,89)
\rput(21.37,5){$1.0$}
\psline[linecolor=white,linestyle=dotted]
(31.06,9)(31.06,89)
\psline(31.06,8)(31.06,9.5)
\psline(31.06,88.5)(31.06,89)
\rput(31.06,5){$1.5$}
\psline[linecolor=white,linestyle=dotted]
(40.75,9)(40.75,89)
\psline(40.75,8)(40.75,9.5)
\psline(40.75,88.5)(40.75,89)
\rput(40.75,5){$2.0$}
\psline[linecolor=white,linestyle=dotted]
(50.45,9)(50.45,89)
\psline(50.45,8)(50.45,9.5)
\psline(50.45,88.5)(50.45,89)
108 2.1. JpicEdt

\rput(50.45,5){$2.5$}
\psline[linecolor=white,linestyle=dotted]
(60.14,9)(60.14,89)
\psline(60.14,8)(60.14,9.5)
\psline(60.14,88.5)(60.14,89)
\rput(60.14,5){$3.0$}
\psline[linecolor=white,linestyle=dotted]
(69.83,9)(69.83,89)
\psline(69.83,8)(69.83,9.5)
\psline(69.83,88.5)(69.83,89)
\rput(69.83,5){$3.5$}
\psline[linecolor=white,linestyle=dotted]
(79.53,9)(79.53,89)
\psline(79.53,8)(79.53,9.5)
\psline(79.53,88.5)(79.53,89)
\rput(79.53,5){$4.0$}
\psline[linecolor=white,linestyle=dotted]
(89.22,9)(89.22,89)
\psline(89.22,8)(89.22,9.5)
\psline(89.22,88.5)(89.22,89)
\rput(89.22,5){$4.5$}
\psline[linecolor=white,linestyle=dotted]
(98.91,9)(98.91,89)
\psline(98.91,8)(98.91,9.5)
\psline(98.91,88.5)(98.91,89)
\rput(98.91,5){$5.0$}
\psline[linecolor=white,linestyle=dotted]
(108.6,9)(108.6,89)
\psline(108.6,8)(108.6,9.5)
\psline(108.6,88.5)(108.6,89)
\rput(108.6,5){$5.5$}
\psline[linecolor=white,linestyle=dotted]
(118.3,9)(118.3,89)
\psline(118.3,8)(118.3,9.5)
\psline(118.3,88.5)(118.3,89)
\rput(118.3,5){$6.0$}
\psline[linecolor=white,linestyle=dotted]
2. Herramientas para gráficos con PSTricks 109

(2,17)(122,17)
\psline(1,17)(2.5,17)
\psline(121.5,17)(122,17)
\rput[r](0,17){$-0.8$}
\psline[linecolor=white,linestyle=dotted]
(2,25)(122,25)
\psline(1,25)(2.5,25)
\psline(121.5,25)(122,25)
\rput[r](0,25){$-0.6$}
\psline[linecolor=white,linestyle=dotted]
(2,33)(122,33)
\psline(1,33)(2.5,33)
\psline(121.5,33)(122,33)
\rput[r](0,33){$-0.4$}
\psline[linecolor=white,linestyle=dotted]
(2,41)(122,41)
\psline(1,41)(2.5,41)
\psline(121.5,41)(122,41)
\rput[r](0,41){$-0.2$}
\psline[linecolor=white,linestyle=dotted]
(2,49)(122,49)
\psline(1,49)(2.5,49)
\psline(121.5,49)(122,49)
\rput[r](0,49){$-0.0$}
\psline[linecolor=white,linestyle=dotted]
(2,57)(122,57)
\psline(1,57)(2.5,57)
\psline(121.5,57)(122,57)
\rput[r](0,57){$0.2$}
\psline[linecolor=white,linestyle=dotted]
(2,65)(122,65)
\psline(1,65)(2.5,65)
\psline(121.5,65)(122,65)
\rput[r](0,65){$0.4$}
\psline[linecolor=white,linestyle=dotted]
(2,73)(122,73)
\psline(1,73)(2.5,73)
110 2.1. JpicEdt

\psline(121.5,73)(122,73)
\rput[r](0,73){$0.6$}
\psline[linecolor=white,linestyle=dotted]
(2,81)(122,81)
\psline(1,81)(2.5,81)
\psline(121.5,81)(122,81)
\rput[r](0,81){$0.8$}
\psline(122,9)(122,89)
\psline(2,89)(122,89)
\psline{->}(2,9)(122,9)
\psline{->}(2,9)(2,89)
\rput(62,0){$x$}
\rput(62,93){$y$}
\newrgbcolor{userFillColour}{0.94 0.94 0.94}
\pspolygon[fillcolor=userFillColour,
fillstyle=solid,shadow=true](123,89)
(144,89)(144,62)
(123,62)(123,89)
\pspolygon[linestyle=none,
fillstyle=solid,shadow=true](124,83)
(124,85)(126,85)
(126,83)(124,83)
\rput[l](127.5,84){$\sin(x)$}
\pspolygon[linestyle=none,fillcolor=blue,
fillstyle=solid,shadow=true](124,75)
(124,77)(126,77)(126,75)(124,75)
\rput[l](127.5,76){$\sin(2x)$}
\pspolygon[linestyle=none,fillcolor=red,
fillstyle=solid,shadow=true](124,67)
(124,69)(126,69)
(126,67)(124,67)
\rput[l](127.5,68){$\sin(3x)$}
\psline(2,49.04)
(2.19,49.44)
*
*
*
2. Herramientas para gráficos con PSTricks 111

Lista de puntos para las graficas


*
*
*
(121.81,35.79)
(121.81,36.93)(122,36.93)
\end{pspicture}

2.2 LATEXDraw
Este software fue creado por Arnaud Blouin bajo licencia GNU GEN-
ERAL PUBLIC LICENSE Version 2, y Copyright (C) 1989, 1991 Free
Software Foundation, Inc. En esencia, es muy similar al JpicEdt, pero
este es más sencillo. Para obtenerlo, podemos consultar la página web
http://latexdraw.sourceforge.net/. En este momento se tiene la ver-
sión 1.9.5.

Al contrario de JpicEdt, LATEXDraw genera el código PSTricks en el


112 2.2. LATEXDraw

momento en que se crean los objetos. En la parte derecha del pro-


grama se visualiza el código PSTricks del correspondiente dibujo, el
cual puede ser copiado y pegado en nuestro editor de LaTex preferi-
do, el código ya está listo para compilar, recuerde que se debe poner
los paquetes correspondientes. Además, de los paquetes PSTricks se
puede incluir \usepackage{epsfig}, el cual permite usar la instruc-
ción \scalebox{1}{...Código PSTricks...} para escalar los gráfi-
cos obtenidos con el código.

2.2.1. Herramientas de diseño

LATEXDraw presenta las siguientes herramientas de diseño.

Parámetros de cuadrícula: Permite


configurar la cuadrícula de dibujo.
Tambien presenta una opción para poner
la propiedad de magnetismo.

Opacidad de limitadores: Los


limitadores son pequeños puntos de
referencia que bordea a los objetos
creados para modificarlos. Si cambiamos
la opacidad, podemos volver estos puntos
más claros o más oscuros.

Rehacer y deshacer: Dos herrameintas


usuales en cualquier editor gráfico.

Herramienta líneas: Permiten crear


líneas rectas, la primera genera una sola
línea, la segunda genera un polígono que
se cierra al hacer clic derecho.
2. Herramientas para gráficos con PSTricks 113

Herramienta punto: Ubica un punto estándar de


LATEX donde se haga clic.

Herramienta Rectángulos: Genera rectángulos o


cuadrados según se escoja la herramienta.

Herramienta Polígonos: Permite construir


triángulos, rombos o cualquier tipo de polígonos.

Herramienta elipse: Permiten crear elipses y


circunferencias.

Herramienta Arcos: Crea arcos abiertos, tortas y


arcos cerrados.

Herramienta Curva Bezier: Tiene dos opciones, la


primera es una curva bezier cerrada y la segunda es
abierta.

Herramienta cuadrículas y ejes: Permite


construir cuadrículas propias de PSTricks y ejes
coordenados con la herramienta \psaxes .

Herramienta trazo libre: Haciendo clic sostenido y


arrastrando el ratón, se consigue una trazo muy fino
generando los puntos correspondientes en PSTricks.

Herramienta texto: Permite incluir texto en


nuestro gráfico, recuerde que el texto matemático
debe estar entre el simbolo $.
114 2.2. LATEXDraw

2.2.2. Configuración de objetos

Los objetos creados con LaTexDraw se pueden editar, cambiando sus


propiedades. El objeto debe ser seleccionado con la herramienta selec-
ción.

Haciendo clic en el botón se


accede a los parámetros de ca-
da objeto, teniendo en cuenta
que cada objeto tiene diferentes
propiedades. Por ejemplo, el tex-
to presenta una ventana distinta a
los parámetros de una elipse.

2.2.3. ¿Cómo pasar de LATEXDraw a LATEX?

En la parte derecha del programa aparece un cuadro de texto no ed-


itable con el código PSTriks, sólo se selecciona y se copia, o se va al
menú Editar/copiar, luego pasamos a nuestro editor de LATEX y lo
pegamos. El código generado está listo para utilizarse, en la parte su-
perior aparece entre comentarios las librerías que deben incluirse para
compilarse correctamente.

2.2.4. Ejemplos en LATEXDraw

Ejemplo de Simulaciones 3D
2. Herramientas para gráficos con PSTricks 115

x+y−z =0

x2 + y 2 = 4

x
Código fuente:

% Generated with LaTeXDraw 1.9.5


% Mon Dec 10 12:00:30 COT 2007
% \usepackage[usenames,dvipsnames]{pstricks}
% \usepackage{epsfig}
% \usepackage{pst-grad} % For gradients
% \usepackage{pst-plot} % For axes
\scalebox{10} % Change this value to rescale the drawing.
{
\begin{pspicture}(0,-5.132969)(9.042812,5.132969)
\psline[linewidth=0.04cm,arrowsize=0.05291667cm 2.0,
arrowlength=1.4,arrowinset=0.4]{<-}
(3.4809375,4.6545315)(3.4209375,-1.7854687)
\psline[linewidth=0.04cm,arrowsize=0.05291667cm 2.0,
arrowlength=1.4,arrowinset=0.4]{<-}
116 2.2. LATEXDraw

(8.400937,-1.7654687)
(3.4009376,-1.7654687)
\psline[linewidth=0.04cm,arrowsize=0.05291667cm 2.0,
arrowlength=1.4,arrowinset=0.4]{<-}
(0.4009375,-4.7254686)
(3.4209375,-1.7854687)
\psbezier[linewidth=0.04](2.3409376,-2.8254688)
(3.8409376,-3.1254687)
(4.9209375,-2.6454687)(4.9409375,-1.7654687)
\psline[linewidth=0.02cm,linestyle=dashed,dash=0.16cm 0.16cm]
(4.9409375,1.2545313)
(4.9409375,-1.7854687)
\psline[linewidth=0.02cm,linestyle=dashed,
dash=0.16cm 0.16cm](2.3809376,0.19453125)
(2.3809376,-2.8454688)
\psline[linewidth=0.02cm,linestyle=dashed,
dash=0.16cm 0.16cm]
(4.0409374,1.7345313)(4.0209374,-2.7654688)
\psbezier[linewidth=0.04]
(2.3809376,0.15453126)
(3.1209376,2.6145313)
(4.9009376,1.5945313)
(4.9209375,1.2345313)
\psline[linewidth=0.02cm,linestyle=dashed,
dash=0.16cm 0.16cm](3.4409375,-1.7254688)
(2.4009376,0.17453125)
\psline[linewidth=0.02cm,linestyle=dashed,
dash=0.16cm 0.16cm](3.4609375,-1.7054688)
(4.9809375,1.1945312)
\psline[linewidth=0.02cm]
(4.9609375,1.1545312)(5.8409376,2.6945312)
\psline[linewidth=0.02cm]
(2.4009376,0.13453124)(1.1209375,1.7745312)
\psline[linewidth=0.04cm]
(1.1209375,1.7545313)(3.4409375,3.0745313)
\psline[linewidth=0.04cm]
(3.4409375,3.0345314)(5.8409376,2.6745312)
2. Herramientas para gráficos con PSTricks 117

\psline[linewidth=0.04cm]
(1.1209375,1.7745312)(5.8609376,2.6745312)
\usefont{T1}{ptm}{m}{n}
\rput(4.782344,-3.1154687){$x^2+y^2=4$}
\usefont{T1}{ptm}{m}{n}
\rput(5.682344,3.2845314){$x+y-z=0$}
\usefont{T1}{ptm}{m}{n}
\rput(3.5023437,4.9445314){$z$}
\usefont{T1}{ptm}{m}{n}
\rput(0.22234374,-4.9554687){$x$}
\usefont{T1}{ptm}{m}{n}
\rput(8.732344,-1.7154688){$y$}
\end{pspicture}
}

Ejemplo de Simulaciones 2D

3
1
x=
2 cosh(t)

1 y = t − tanh(t)

−4 −3 −2 −1 1 2 3 4
−1

−2

−3

−4

Código fuente:

\scalebox{1} % Change this value to rescale the drawing.


{
118 2.2. LATEXDraw

\begin{pspicture}(0,-5.09)(10.0,5.07)
\definecolor{color23}{rgb}{0.0,0.2,1.0}
\rput(5.0,0.07){\psaxes[linewidth=0.03,
arrowsize=0.05291667cm 2.0,arrowlength=1.4,
arrowinset=0.4]{<->}(0,0)(-5,-5)(5,5)}
\psbezier[linewidth=0.04,linecolor=color23,
linestyle=dashed,dash=0.16cm 0.16cm,
arrowsize=0.05291667cm 2.0,arrowlength=1.4,
arrowinset=0.4]{<->}
(3.42,4.85)(3.64,1.17)(4.58,0.43)(9.92,0.09)
\psbezier[linewidth=0.04,linecolor=color23,
linestyle=dashed,dash=0.16cm 0.16cm
,arrowsize=0.05291667cm 2.0,arrowlength=1.4,
arrowinset=0.4]{<->}
(3.72,-5.07)(4.02,-0.45)(4.72,-0.61)(9.94,0.06427509)
\usefont{T1}{ptm}{m}{n}
\rput(7.351406,2.28){$x=\dfrac{1}{\cosh (t)}$}
\usefont{T1}{ptm}{m}{n}
\rput(6.6914062,1.66){$y=t-\tanh (t)}$}
\end{pspicture}
}
CAPÍTULO 3
Conceptos Generales de XY- pic

En este capítulo mostraremos algunos ejemplos hechos con el paquete


XY-pic, en ellos se muestra la manera de construir gráficos, teniendo
en cuenta que están puestos sobre las componentes de una matriz.

Para contruir una gráfica con XY-pic se deben tener en cuenta los sigu-
ientes aspectos:

• Especificar las componentes como una matriz de entradas que


están automáticamente alineadas en filas y columnas.

• Cualquier entrada puede ser conectada a cualquier otra, utilizan-


do una variedad de estilos de flecha y rotaciones.

• Las flechas pueden ser decoradas con etiquetas que están vin-
culadas a un punto específico de edición y ampliadas en una
dirección en particular.

Esperamos que estos ejemplos sean de gran ayuda para la construc-


ción de diagramas de flujo, diagramas conmutativos, diagramas de
dinámicas ecológicas y epidemiológicas.

119
1203.1. Diagramas de dinámicas ecológicas y epidemiológicas

3.1 Diagramas de dinámicas ecológicas y epi-


demiológicas
Ejemplo 3.1

f (t)x / _^]\
XYZ[
x

Dinámica de crecimiento exponencial.

$$ \xymatrix{f(t)x \ar[rr] &&*+<1cm>^[o][F]{x}} $$

Ejemplo 3.2

x

rx 1 − K
/ x

Dinámica de crecimiento logístico.

$$
\xymatrix{rx\left(1-\frac{x}{K}\right)
\ar[rr] &&*+<1cm>^[F]{x}}
$$

Ejemplo 3.3

y
φx(1− K )
ωa / x / y

 
ǫx (π + ω)y

Dinámica de crecimiento del mosquito.


3. Conceptos Generales de XY- pic 121

\begin{displaymath}
\xymatrix{\omega a \ar[rr] &&
*+<1cm>[F-,]{x}\ar[rr]^{\phi x
(1-\frac{y}{K})}\ar[d] && *+<1cm>[F-,]{y}\ar[d]\\
&& \epsilon x && (\pi +\omega) y}
\end{displaymath}

Ejemplo 3.4

XYZ[
_^]\
x
βxy
/ _^]\
XYZ[
y
θy
/ _^]\
XYZ[
z

Modelo SIR sin dinámica vital.

\begin{equation*}
\xymatrix {*+<1cm>^[o][F-]{x}
\ar[r]^{\beta xy} & *+<1cm>[o][F-]
{y} \ar[r]^{\theta y} & *+<1cm>[o][F-]{z} }
\end{equation*}

Ejemplo 3.5

x5
βv V 1
x θx2
µN / x1 [ / x2 / x3


   
µx1  µx2 µx3



ρ / _^]\
XYZ[
x4 _ _ _ _ _ _/ _^]\
XYZ[
x5
x2
βh N 4
x

 
ǫx4 ǫx5

Dinámica de transmisión e incidencia de dengue.


1223.1. Diagramas de dinámicas ecológicas y epidemiológicas

\begin{displaymath}
\xymatrix {\mu N \ar[rr] && *+<1cm>[F-,]{x_{1}}
\ar[rr]^{\beta_{v}
\frac{x_{5}}{V}x_{1}} \ar[d] &&
*+<1cm>[F-,] {x_{2}} \ar[rr]^{\theta x_{2}}
\ar@{-->}@/^/[ddl] \ar[d]
&& *+<1cm>[F-,]{x_{3}} \ar[d]\\
&& \mu x_{1} && \mu x_{2} && \mu x_{3}\\
\rho \ar[rr] && *+<1cm>[o][F-]{x_{4}}
\ar@{-->}[rr]_{\beta_{h}
\frac{x_{2}}{N}x_{4}} \ar[d] &&
*+<1cm>[o][F-] {x_{5}}
\ar@{->}@/_/[uul] \ar[d] && \\
&& \epsilon x_{4} && \epsilon x_{5} && }
\end{displaymath}

Ejemplo 3.6

αR

{
βSI θE γI
∆ / S / E / I / R

   
µS µE µI µR
Dinámica SEIRS (cólera) con dos rutas de transmisión.

\begin{displaymath}
\xymatrix{\Delta \ar[r] &
*+<1cm>[F-,]{S}\ar[r]^{\beta SI}\ar[d] &
*+<1cm>[F-,]{E}\ar[d]\ar[r]^{\theta E} &
*+<1cm>[F-,]{I}\ar[d]\ar[r]^{\gamma I} &
*+<1cm>[F-,]{R}\ar[d]
\ar@{->}@/_1.5cm/[lll]^{\alpha R } \\
& \mu S & \mu E & \mu I & \mu R}
\end{displaymath}
3. Conceptos Generales de XY- pic 123

Ejemplo 3.7

αR

{
βSI θE γI
∆ / S / E / I / R

   
µS µE µI µR

Dinámica SEIRS con una ruta de transmisión.

\begin{displaymath}
\xymatrix{\Delta \ar[r] &
*+<1cm>[F-,]{S}\ar[r]^{\beta SI}\ar[d] &
*+<1cm>[F-,]{E}\ar[d]\ar[r]^{\theta E} &
*+<1cm>[F-,]{I}\ar[d]\ar[r]^{\gamma I} &
*+<1cm>[F-,]{R}\ar[d]
\ar@{->}@/_1.5cm/[lll]^{\alpha R } \\
& \mu S & \mu E & \mu I & \mu R}
\end{displaymath}

Ejemplo 3.8

θ1 I
µN / S β1 SI2 / I1 / R
E


µS


(µ + υ)I1 µR

θ2

ζI1 I2 /
1243.1. Diagramas de dinámicas ecológicas y epidemiológicas

\begin{equation*}
\xymatrix {\mu N \ar[r] &
*+<1.3cm>^[o][F.]{S} \ar[r]|{\beta_1 S
I_2} \ar[d] & *+<1.3cm>[o] [F.] {I_1}
\ar[r]^{\theta_1 I}
\ar[d] & *+<1.3cm>[o][F.]{R}\ar[d] \\
& \mu S && (\mu +
\upsilon)I_{1} & \mu R \\
& \zeta I_1 \ar[rr] &
*+<1.3cm>[o][F.]{I_2} \ar[ruu]_{\theta_2}
&}
\end{equation*}

Ejemplo 3.9

∆N


ψn−1
XYZ[
_^]\
S
β
/ _^]\
XYZ[
I
θ / _^]\
XYZ[
R1
ψ1
/ _^]\
XYZ[
R2 _ _ _/ _^]\
XYZ[
Rn

    
µ µ+ǫ µ µ µ

\begin{equation*}
\xymatrix {\Delta N \ar[d] & & & &\\
*+<1cm>^[o][F]{S} \ar[r]^{\beta}
\ar[d] & *+<1cm>[o][F] {I}
\ar[r]^{\theta} \ar[d] &
*+<0.8cm>[o][F]{R_1}\ar[r]^{\psi_1}\ar[d] &
*+<0.8cm>[o][F]{R_2}
\ar@{-->}[r]^{\psi_{n-1}}\ar[d]&
*+<0.8cm>[o][F]{R_n}\ar[d]\\
\mu & \mu + \epsilon & \mu
& \mu & \mu }
\end{equation*}
3. Conceptos Generales de XY- pic 125

Ejemplo 3.10

∆N ϑ
j g c _ [ W T
n P
r L
 {v H
β θ α
S / E / I / R

   
µ µ+ǫ µ µ

\begin{equation*}
\xymatrix {\Delta N \ar[d] & & & \\
*+<1cm>^[F-,]{S} \ar[r]^{\beta}
\ar[d] &
*+<1cm>[F-,] {E} \ar[r]^{\theta} \ar[d] &
*+<1cm>[F-,]{I}\ar[r]^{\alpha}\ar[d]&
*+<1cm>[F-,]{R}\ar@{-->}
@/_1.5cm/[lll]_{\vartheta}\ar[d]\\
\mu & \mu + \epsilon & \mu & \mu }
\end{equation*}

Ejemplo 3.11

∆N
β
k h e b _ \ Y V S
 n P M
q &
S I
Mf P
S V n q
Y \ ϑ_ b e h k
 
µ µ+ǫ

\begin{equation*}
\xymatrix {\Delta N \ar[d] &&&& \\
*+<1cm>[F=]{S}\ar@{-->}@/^1cm/[rrrr]^{\beta}
1263.1. Diagramas de dinámicas ecológicas y epidemiológicas

\ar[d] &&&&
*+<1cm>[F=]{I}
\ar@{-->}@/^1cm/[llll]_{\vartheta}
\ar[d] \\
\mu &&&& \mu + \epsilon }
\end{equation*}

Ejemplo 3.12

_ _ _ _  _ _ _ 
   
∆N / S  β / I 
   
_ _ _ _ _ _ _

 
µS (µ + ǫ)I

\begin{equation*}
\xymatrix {\Delta N \ar[rr] &&
*+<1cm>[F--]{S}\ar[rr]|{\beta} \ar[d] &&
*+<1cm>[F--]{I}\ar[d] \\
&& \mu S && (\mu + \epsilon)I }
\end{equation*}

Ejemplo 3.13

r _P 2 s _P3
 
αx / x  _ _ _ _ _ _ y o θxy
2 3
P_ r P_ s


 
µxy ǫy

Modelo Presa - Depredador de Lotka - Volterra

\begin{equation*}
\xymatrix {\alpha x \ar[rr] &&
*+<1cm>[o][F--]{x}\ar@{--}[rr] \ar[d] &&
*+<1cm>[o][F--]{y}\ar[d] &&
3. Conceptos Generales de XY- pic 127

\theta xy \ar[ll]\\
&& \mu xy && \epsilon y && }
\end{equation*}

Ejemplo 3.14

ωL
q _ M1z s _P3
  
/ L 
1 M l λM
3 
M _ q P _ sX
.
&
  
αM + βXM θL


r _ L2

f XM / X o ǫL
2
L _ r


µX

Modelo Presa - Depredador - Parasitoide

\begin{equation*}
\xymatrix { *+<1cm>[o][F--]{M}\ar[rr]|{\lambda M}
\ar[d]&&*+<1cm>[o][F--]{L}\ar[d]
\ar@{->}@/_1cm/[ll]|{\omega L}\\
\alpha M + \beta X M && \theta L \\
fXM \ar[rr] && *+<1cm>[o][F--]{X}
\ar@{->}@/_1cm/[uull]
\ar@{-->}@/_0.8cm/[uu]
\ar[d] && \epsilon L \ar@{->}[ll] \\
&& \mu X && }
\end{equation*}

Ejemplo 3.15
1283.1. Diagramas de dinámicas ecológicas y epidemiológicas

mi
αψ1 ( m
)x θy
µN / x S / y / z


   
µx  µy µz

 φmψ3 (1− aI )
ωa / _^]\
XYZ[
ms _ _ _ _ _ _/ _^]\
XYZ[
mi / _^]\
XYZ[
a
y
βψ2 ( N )ms

  
ǫms ǫmi (π + ω)a

Modelo para el control del dengue

\begin{equation*}
\xymatrix {\mu N \ar[rr] && *+<1cm>[F-,]{x}
\ar[rr]^{\alpha \psi_{1}
(\frac{m_i}{m})x} \ar[d] &&
*+<1cm>[F-,] {y} \ar[rr]^{\theta y}
\ar@{-->}@/^/[ddl] \ar[d] &&
*+<1cm>[F-,]{z} \ar[d]\\
&& \mu x && \mu y && \mu z\\
\omega a \ar[rr] && *+<1cm>[o][F]{m_s}
\ar@{-->}[rr]_{\beta \psi_{2}
(\frac{y}{N})m_s} \ar[d] &&
*+<1cm>[o][F] {m_i} \ar[rr]^{\phi m
\psi_3 (1-\frac {a}{I})}
\ar@/^/[uul] \ar[d] &&
*+<1cm>[o][F]{a} \ar[d]\\
&& \epsilon m_s && \epsilon m_i
&& (\pi + \omega)a}
\end{equation*}

Ejemplo 3.16
3. Conceptos Generales de XY- pic 129

r _P 2 s _P3 u _P5
 ψ1 (·)x  θy /
/ x  / y  
∆N 2 3 5 z 
P _ r c P _ s
 P_ u

   
µx } µy µz
z
r _ L x q _ M1
2{
u1  ψ3 (·)ms
o ms  _ _ _ _ _ _ _ /  mi 
2 1
C L _ r M _ q

 
ψ4 (·)p ǫms (ǫ − u1 )mi

r _P2 r _P 2 s _P3
 ψ3 (·)l  ψ6 (·)h 
p o o 
2  2 l  3 h 
P_ r C P_ r P_ s

   
ǫp p 
(ǫl + βxd )l ǫh h
(
1
r _ L2

ξlxd / xd  / ωxd
2
L _ r

Modelo para el control integrado del A. aegypti

\begin{equation*}
\xymatrix {\Delta N\ar[rr] &&
*+<1cm>[o][F--]{x}\ar[rr]^{\psi_1
(\cdot)x} \ar[d] && *+<1cm>[o][F--]{y}
\ar[rr]^{\theta
y}\ar@{-->}@/^/[ddll]
\ar[d] && *+<1cm>[o][F--]{z} \ar[d]\\
&& \mu x && \mu y && \mu z\\
&& *+<1cm>[o][F--]{m_s} \ar[ll]_{u_1}
130 3.2. Diagramas conmutativos

\ar@{-->}[rr]^{ \psi_3
(\cdot)m_s} \ar[d] &&
*+<1cm>[o][F--] {m_i}\ar@{->}@/_/[uull]
\ar[d] && \\
&& \epsilon m_s &&
(\epsilon - u_1)m_i &&\\
&& *+<1cm>[o][F--] {p}
\ar@{->}@/^1cm/[uu]^{\psi_4(\cdot)p}
\ar[d] &&
*+<1cm>[o][F--] {l}
\ar [ll]_{\psi_3(\cdot)l}\ar[d] &&
*+<1cm>[o][F--] {h}
\ar [ll]_{\psi_6(\cdot)h}\ar[d]\\
&&\epsilon_p p && (\epsilon_l +
\beta x_d)l &&
\epsilon_h h\\
&& \xi l x_d \ar[rr] && *+<1cm>[o][F--]
{x_d}\ar[rr]\ar@{-->}@/^1cm/[uu] &&
\omega x_d}
\end{equation*}

3.2 Diagramas conmutativos


Ejemplo 3.17

f
XO /Y

ϕ ψ
f¯ 
X/R o Y /Q

\begin{equation*}
\xymatrix{
X \ar[r]^f & Y \ar[d]^\psi \\
X/R \ar[u]^\varphi & Y/Q \ar[l]_{\bar{f}}}
\end{equation*}

Ejemplo 3.18
3. Conceptos Generales de XY- pic 131

XO f /Y
O
ϕ O ψ
O

X/R ks f¯ Y /Q

\begin{equation*}
\xymatrix{
X \ar[r]|{f} & Y \ar@{=>}[d]^\psi \\
X/R \ar@{~>}[u]^\varphi & Y/Q
\ar@{:>}[l]|{\bar{f}}}
\end{equation*}

Ejemplo 3.19

ϕ
AO o/ o/ /o / B
~~
f¯ ~~~
~~~ f
C

\begin{equation*}
\xymatrix{ A \ar@{~>}[r]^\varphi &
B \ar[ld]^{f}\\
C \ar@{.>}[u]^{\bar{f}}}
\end{equation*}

Ejemplo 3.20

A @PPP
@@ PPP
@@ PPP
@@ PPP
 PP'
B C D

\begin{equation*}
\xymatrix {A \ar [d] \ar [dr] \ar [drr] &&\\
B & C & D }
\end{equation*}
132 3.2. Diagramas conmutativos

Ejemplo 3.21

A@ /B
@@
@@
@@

D C

\begin{equation*}
\xymatrix {A \ar [d] \ar [dr] \ar [r] & B\\
D & C }
\end{equation*}

Ejemplo 3.22

a b

c d

\begin{equation*}
\xymatrix { a & b\\
c & d}
\end{equation*}

Ejemplo 3.23

f1 f2
A / B / C

\begin{equation*}
\xymatrix{ * + < 1cm > [F-]{A}
\ar [r]^{f_1} & * + < 1cm
> [F-]{B}\ar[r]^{f_2} & * + < 1cm > [F-] {C}}
\end{equation*}

Ejemplo 3.24
3. Conceptos Generales de XY- pic 133

/ 1 ex2 + C
2
R
/
xex 2

\begin{equation*}
\xymatrix { xe^{x^2} \ar [r] &
* + <1cm > [F-] {\int}
\ar [r] & \frac {1}{2} e^{x^2} + C & & &}
\end{equation*}
Ejemplo 3.25

f1 f2
/ A / B / C /

\begin{equation*}
\xymatrix{ \ar [r] &
* + < 1cm > [F-]{A} \ar [r]^{f_1} &
* + < 1cm> [F-]{B}\ar[r]^{f_2} &
* + < 1cm > [F-] {C}
\ar [r] &}
\end{equation*}
Ejemplo 3.26

/
Pn ix /
(ζ + ϑ) i=1 e

\begin{equation*}
\xymatrix{ \ar [r] &
* + < 3cm > [F-]{(\zeta + \vartheta
)\sum_{i=1}^n e^{ix}} \ar [r] &}
\end{equation*}
134 3.2. Diagramas conmutativos

Ejemplo 3.27

_ _ _ _ 
 
XYZ[
_^]\
A / 0123
7654
B / C 
 
_ _ _ _

\begin{equation*}
\xymatrix {*+<1cm>[o][F]{A} \ar [r] &
*+[o][F]{B} \ar [r] &
*+<1cm>[F--]{C}}
\end{equation*}

Ejemplo 3.28

β Υ 8ρ
ppppp
pp
ppppp
ppp χ
ζ

\begin{equation*}
\xymatrix{ \beta & \Upsilon & \rho \\
\zeta \ar[rru] & \chi}
\end{equation*}

Ejemplo 3.29

A >B C n7 D
~~~ nnnnn
~~ nn
~~ nnn
nnn
E F G

\begin{equation*}
\xymatrix{ A & B & C & D\\
E\ar[-1,1] & F \ar [-1,2] & G}
\end{equation*}

Ejemplo 3.30
3. Conceptos Generales de XY- pic 135

A =B C
E

E /G
=F

 
H T K

\begin{equation*}
\xymatrix{ A\ar@ /^/[rrdd] &&
B\ar@/^/[rrdd] && C \\
E\ar@/_/[urr] && F \ar [rr] && G \\
H\ar@/_/[urr] && T\ar@/_/[rruu] && K }
\end{equation*}

Ejemplo 3.31



+



 A B

 •
+
A B




 A • 3B
 •
A 3B

\begin{displaymath}
\begin{cases}
\xymatrix{A\ar@/^/[rr]^(0.2){\bullet} && B} \\
\xymatrix{A\ar@/^/[rr]^(0.4){\bullet} && B} \\
\xymatrix{A\ar@/_/[rr]^(0.6){\bullet} && B} \\
\xymatrix{A\ar@/_/[rr]^(0.8){\bullet} && B }
\end{cases}
\end{displaymath}

Ejemplo 3.32
136 3.2. Diagramas conmutativos


3 4
1 2
*
 ( X
$ X
XYZ[
_^]\ X Y
X Y
Y Z
Z
W

\\begin{equation*}
\xymatrix{*{\bullet} \ar@/^/[dr]!U|1
\ar@/^/[drr]!U|2
\ar@/^/[drrr]!U|3
\ar@/^/[drrrr]!U|4\\
&*+<1cm>[o][F]\txt{X} &*+[F]\txt {X\\ Y}
&*+[F-]\txt{X\\ Y\\ Z }
&*+[F.]\txt{X\\ Y\\ Z\\ W}}
\end{equation*}

Ejemplo 3.33

`abc
gfed
xn n

\begin{equation*}
\xymatrix {*+<1cm>[o][F]{x_{n_{n}}}}
\end{equation*}

Ejemplo 3.34

A / B / C
3. Conceptos Generales de XY- pic 137

\begin{equation*}
\xymatrix{*+<2cm>[F.]{A} \ar [r] &
*+<2cm>[F=]{B} \ar [r] &
*+<2cm>[F-,]{C} }
\end{equation*}

Ejemplo 3.35

ψ1 ψ2
x / y / z

\begin{equation*}
\xymatrix @=1cm {*+<1cm>[F-,]{x}
\ar[r]^{\psi_1} &
*+<1cm>[F-,] {y} \ar[r]^{\psi_2} &
*+<1cm>[F-,]{z}}
\end{equation*}

Ejemplo 3.36

f
XYZ[
_^]\
A
- _^]\
XYZ[
B
O


XYZ[
_^]\
D XYZ[
_^]\
C
m
g

\begin{equation*}
\xymatrix{ *+<1cm>[o][F]{A}
\ar @ /^/[r]^f &
*+<1cm>[o][F]{B} \ar [d]\\
*+<1cm>[o][F]{D} \ar [u] &
*+<1cm>[o][F]{C} \ar @ /^/[l]^g}
\end{equation*}

Ejemplo 3.37
138 3.2. Diagramas conmutativos

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
 
 
 
 
 
 
  z x

 xy , ee 
 1+ 1+x 
 x1,2,...,n , 1+ x

1+ x1
 
 
 
 
 
 
 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

\begin{equation*}
\xymatrix {*+<5cm>[F--]{\begin{cases}
x^{y^z}\quad,\quad e^{e^x}\\
x^{1,2,\ldots,n}\quad , \quad
1+ \frac {1+\frac {1+x}{x}}{1+\frac
{1}{x}}\end{cases}}}
\end{equation*}

Ejemplo 3.38

1 / o 1 1 / o 1
O O O

1 1 −3 1 1

_ −3
_ _/ O 1 /
o
1  _ −3
O _ _/

1 1 −3 1 1

 / / / o 
1 1 1 1

\begin{equation*}
\xymatrix{\ar[r]^1 & \ar[d]^1 &
\ar[l]_1 \ar[r]^1 & \ar[d]^1 &
\ar[l]_1 \\
\ar[u]^1 \ar[d]_1 & \ar@{<--}[l]_{-3}
3. Conceptos Generales de XY- pic 139

\ar[r]^1 & \ar@{-->}[u]^{-3}


\ar@{-->}[d]^{-3} & \ar@{->}[l]_1
\ar@{-->}[r]^{-3} & \ar[u]_1
\ar[d]^1\\
\ar[r]_1 & \ar[u]^1 \ar[r]_1 &
\ar[r]_1 & \ar[u]^1 & \ar[l]^1}
\end{equation*}

Ejemplo 3.39

p T NNNN
ppppp NNN
ppp NNN
p NNN
x pp
p &
X NNN qq Y
NNN qqq
NNN qq
f NNNN
qqqqq g
& xq
Z

\begin{equation*}
\xymatrix{&& T \ar[rrd] \ar[lld] && \\
X \ar[rrd]_f && &&
Y \ar[lld]^g \\ && Z &&}
\end{equation*}
140 3.2. Diagramas conmutativos
BIBLIOGRAFÍA

[1] Abell, Martha L., and Braselton, James P. Maple V by example,


Academic Press (1999).

[2] Bautista, T., Oetiker T., Partl H., Hyna I. and Schlegl E. Una de-
scripción de LATEX. Manual del Centro de Microelectrónica Apli-
cada de la Universidad de las Palmas de G. C. (1998).

[3] file://D:/Mis Documentos /NeoZero Apuntes sobre LaTEX.htm

[4] Grätzer G. Math into LATEX - An intrduction to LATEX y


AMS - LATEX, Birkhäuser Boston (1996).

[5] Kristoffer H. Rose. The XY- pic home page, (1994)


URL:http://www.ens-lyon.fr/Xy - pic.html

[6] Lamport L. LATEX, Addison - Wesley Publishing Company (1994).

[7] Rolf Niepraschk. The eso - pic package,(2002).

[8] Rotman J. J. An introduction to algebraic topology. Springer -


Verlag (1988).

[9] Ves de E., Benavent X., Gutierrez J. LATEX Avanzado - Uso de


paquetes especiales, Departamento de matemática Universidad de
Valencia, España (2006).

141
142 BIBLIOGRAFÍA

[10] http://www.lobachevsky.com/nikolai1.jpg

[11] DE CASTRO, Rodrigo. El Universo LATEX, Panamericana de for-


mas impresas, 2003.

[12] ROSE, Kristofer. XY-pic User’s Guide, User’s Guide Version 3.7,
February 16, 1999.

[13] VAN ZANDT, Timothy. PSTricks: PostScript macros for Generic


TEX, User’s Guide, 1993.

[14] VAN ZANDT, Timothy. PSTricks - PostScript macros for Gener-


ic TEX. http://www.tug.org/application/PSTricks, 1993.

[15] VOß, Herbert. Die mathematischen Funktionen von PostScript.


Die TEXnische Komodie, 2002.

[16] VOß, Herbert. Three dimensional plots with pst-3dplot, 2002.

[17] VOß, Herbert. pstricks-add: additionals Macros for pstricks, 2006.


Diseño Gráfico en LATEX
Gráficos Matemáticos de Alta Calidad
z

x y

ISBN: 978-958-44-2285-9
Armenia Quindío Colombia 2007
Derechos Reservados©

You might also like