Professional Documents
Culture Documents
x y
βϕ2 (·)
αϕ1 (·) x y
ǫx − u1 ǫy − u1
λϕ3 (·) θ
µN S I R
λr ϕ4 (·)
µS µI µR
ǫr xr ǫr yr
14 de diciembre de 2007
J. M. García, A. Muñoz L. E. A. Hoyos
Derechos Reservados©
Armenia Quindío Colombia 2007
ISBN: 978-958-44-2285-9
PREFACIO
3
4
5
6 ÍNDICE GENERAL
\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
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}
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}
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
\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)
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}
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.
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*
\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
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
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.
\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.
\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)$
\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
\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
\pscircle[par](x0,y0){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.
\pswedge[par](x0,y0){r}{ang1}{ang2}
\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)
\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}
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}
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
\parabola[par]{flechas}(x0,y0)(x1,y1)
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
curvature= n m p
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
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
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
Negro (black), gris oscuro (darkgray), gris (gray), gris claro (lightgray),
y blanco (white)
\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}
newhsbcolor
\newhsbcolor{color}{h s b}
newcmykcolor
\newcmykcolor{color}{c m y k}
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}
\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
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.
\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
\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
\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
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
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}
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
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)
\pszigzag[par]{flechas}(x1,y1)(x2,y2)
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.
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
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)
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).
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}
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.
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}
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)
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.
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}
\uput{s}[r]{ang}(x,y){objeto}
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)
\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 .
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,
\pstextpath[pos]{curva}{texto}
1. Gráficos con PSTricks 45
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}
\pscharpath[par]{texto}
Ejemplo:
\pscharpath[linestyle=none, fillstyle=gradient]
{ \Huge Universidad del Quindío}
1. Gráficos con PSTricks 47
\savedata{\fun}[{x1,y1},...{xn,yn}]
\dataplot[par]{\fun}
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}
\psplot[op]{x1}{x2}{fun}
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
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}
\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).
-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}
\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}
\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}
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.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.
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.
Conectores \ncline.
\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:
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.
\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)
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$}
\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}
{\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
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.
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
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.
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
\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}
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}
http://ctan.org/tex-archive/
graphics/pstricks/contrib/pst-3dplot/
x y
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}
objetos no.
\pstThreeDPut[par](x,y,z){obj}
ξ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)
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}
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
1.11.6. Triángulos
Para dibujar triángulos, PSTricks3D implementa el siguiente comando:
\pstThreeDTriangle[par](P1)(P2)(P3)
b b
b
b
b
b
x y
La sintaxis es la siguiente:
\pstThreeDSquare[Op](v1)(v2)(v3)
Ejemplo:
1. Gráficos con PSTricks 73
z
x y
1.11.8. Cajas
\pstThreeDBox[par](v1)(v2)(v3)(v4)
Ejemplo:
74 1.11. Manejo de objetos 3D con PSTricks
z
x y
a b a
F1 e
b b
e F2
a
r1 r2
(x − x0 )2 (y − y0 )2
+ =1 (1.1)
a2 b2
1. Gráficos con PSTricks 75
\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
1.11.10. Esferas
La sintaxis es la siguiente:
\pstThreeDSphere[OP](x,y,z){r}
1. Gráficos con PSTricks 77
x y
\parametricplotThreeD[par](t1,t2)(u1,u2){x(t,u)
y(t,u) z(t,u)}
Ejemplo:
x y
Ejemplo:
1. Gráficos con PSTricks 79
x y
\psplotThreeD[OP](x0,xt)(y0,yt){f(x,y)}
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.
Ejemplo:
f (x, y) = x2 + y 2 − x
5
x y
Ejemplo:
82 1.11. Manejo de objetos 3D con PSTricks
z
x y
Ejemplo:
1. Gráficos con PSTricks 83
z
2
f (x, y) = sin (180x)
x y
\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
Ejemplo:
1. Gráficos con PSTricks 85
1
f (x, y) = 1 − x2 + y 2 3
y
x
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
2.1.1. Ventanas
JpicEdt tiene 3 ventanas principales, la primera de ella es la de trabajo.
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.
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
f
I
& =1 &
+ y ≥1
−
≥1
x
O
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.
g(x) = cos(x)
1 2 3 4 5 6
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}
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
1.0
-5.0 5.0
-1.0
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
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}
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}
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
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.
Ejemplo de Simulaciones 3D
2. Herramientas para gráficos con PSTricks 115
x+y−z =0
x2 + y 2 = 4
x
Código fuente:
(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:
\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
Para contruir una gráfica con XY-pic se deben tener en cuenta los sigu-
ientes aspectos:
• 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.
119
1203.1. Diagramas de dinámicas ecológicas y epidemiológicas
f (t)x / _^]\
XYZ[
x
Ejemplo 3.2
x
rx 1 − K
/ x
$$
\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
\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
\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
\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
\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
\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
\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
\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
\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*}
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
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
[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).
141
142 BIBLIOGRAFÍA
[10] http://www.lobachevsky.com/nikolai1.jpg
[12] ROSE, Kristofer. XY-pic User’s Guide, User’s Guide Version 3.7,
February 16, 1999.
x y
ISBN: 978-958-44-2285-9
Armenia Quindío Colombia 2007
Derechos Reservados©