PDF de programación - Apuntes de LATEX Capítulo 9-2: Dibujando con LATEX

Imágen de pdf Apuntes de LATEX Capítulo 9-2: Dibujando con LATEX

Apuntes de LATEX Capítulo 9-2: Dibujando con LATEXgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Octubre del 2017)
1.585 visualizaciones desde el 8 de Octubre del 2017
276,9 KB
23 paginas
Creado hace 15a (18/11/2008)
Apuntes de LATEX

Cap´ıtulo 9-2: Dibujando con LATEX

(M´as cosas sobre PSTricks)

1 Nodos y conexiones

Cargando el paquete pst-node, podemos conectar informaci´on y poner etiquetas dentro
de una documento, sin conocer la posici´on exacta de los objetos a conectar. Se pueden
definir tres tipos de objetos:

Definiciones de nodos Para asignar un nombre y una forma a un objeto

Conexiones entre nodos Para conectar dos nodos, previamente identificados por sus

nombres

Etiquetas de conexiones Para fijar etiquetas a las conexiones

1.1 Definici´on de nodos

Para declarar que un objeto LATEX es un nodo se puede utilizar:
\rnode[Posici´on]{NombreNodo}{Objeto}

donde el argumento optativo Posici´on tiene la misma sintaxis que para el comando
\rput; se utiliza esta informaci´on para determinar, m´as adelante, el punto desde donde
saldr´an las conexiones. NombreNodo sirve para referirnos al nodo (el nombre debe con-
tener s´olo letras y numeros, comenzando por una letra) y Objeto es el elemento LATEX
correspondiente a ´ese nodo. Para utilizar nodos en un entorno pspicture, basta con
declararlos dentro del argumento de un comando \rput

Existen otras variantes para crear nodos con formas predefinidas:

\pnode(x,y){NombreNodo} → Crea un nodo 0-dimensional (punto) en las coor-
denadas (x,y).

\cnode[Par´ametros](x,y){R}{NombreNodo} → Dibuja un c´ırculo en las coor-
denadas (x,y), de radio R, y le asigna un nombre de nodo.

1

\circlenode[Par´ametros]{NombreNodo}{Objeto} → Encierra Objeto en un
c´ırculo y le asigna un nombre de nodo.

\ovalnode[Par´ametros]{NombreNodo}{Objeto} → Encierra Objeto en un ´ovalo
y le asigna un nombre de nodo

1.2 Conexiones

Para conectar dos nodos, existe una variedad de comandos, que se diferencia en el modo
en el que se establece la conexi´on (recta, curva, zig-zag, etc..). Todos ellos comienzan
por “nc” y tienen la misma sintaxis:

\ncTipodeConexion[Par´ametros]{TipoDeFlecha}{NodoA}{NodoB}

donde en Par´ametros podemos especificar diversas propiedades de la l´ınea de conexi´on
(grosor, color, tipo, etc...), y y en TipoDeFlecha si queremos puntas de flecha. NodoA y
NodoB son los nombres de los nodos que queremos conectar. Veamos ahora con ejemplos
gr´aficos sencillos los distintos tipos de conexi´on:

• \ncline

\begin{pspicture}(4,2)
\rput(1,0){\rnode{A}{Idea 1}}
\rput(4,2){\rnode{B}{Idea 2}}
\ncline[nodesep=4pt,%
linewidth=1pt]{<->}{A}{B}
% nodesep es la separaci´on entre
% un nodo y el final de la l´ınea
% de conexi´on
\end{pspicture}

Idea 2

Idea 1

• \nccurve

Los par´ametros angleA y angleB determinan la orientaci´on con la

que se establecen las conexiones

\begin{pspicture}(4,2)
\rput(1,0){\rnode{A}%
{\psframebox{Idea 1}}}
\rput(4,2){\ovalnode{B}{Idea 2}}
\nccurve[linewidth=1pt,angleA=90,%
angleB=-90]{<->}{A}{B}
\nccurve[linewidth=1pt,%
linestyle=dashed,
angleA=0,angleB=180]{<->}{A}{B}
\end{pspicture}

2

Idea 2

Idea 1

• \ncarc

\begin{pspicture}(4,2)
\rput(1,0){\circlenode{A}{X}}
\rput(4,2){\circlenode{B}{Y}}
\psset{nodesep=3pt,%
linewidth=1.5pt,arrowsize=8pt}
\ncarc{->}{A}{B}
\ncarc{->}{B}{A}
\end{pspicture}

Y

X

• \ncbar

angle controla los ´angulos a los que salen las conexiones,

y arm la longitud del brazo de la conexi´on

\rnode{A}{Conexiones}
\rnode{B}{dentro}
\rnode{C}{de} un \rnode{D}{texto}
\ncbar[linewidth=1.2pt,nodesep=3pt,
angle=90]{->}{A}{D}
\ncbar[linewidth=1.2pt,nodesep=3pt,
angle=-90,arm=20pt]{<-}{B}{C}

Conexiones dentro de un texto

• \ncdiag (n´otese en en ejemplo como se pueden modificar los par´ametros angleA,

angleB, armA y armB

\begin{pspicture}(4,2)
\rput(1,0){\rnode{A}%
{\psframebox{Idea 1}}}
\rput(4,2){\ovalnode{B}{Idea 2}}
\ncdiag[linewidth=1.5pt,angleA=90,
angleB=-90,linearc=2mm]{->}{A}{B}
\ncdiag[linewidth=1.5pt,%
linestyle=dashed,
angleA=0,angleB=-45,
armA=1.5,armB=0.8]{<-}{A}{B}
\end{pspicture}

Idea 2

Idea 1

3

• \ncdiagg

Similar al anterior, pero con armB=0 (s´olo dos brazos)

\columnbreak \vspace*{0.1cm}
\cnode(0,0){4pt}{a}
\rput[l](3,1){\rnode{b}{H}}
\rput[l](3,-1){\rnode{c}{T}}
\ncdiagg[angleA=180,armA=2cm,
nodesepA=3pt]{b}{a}
\ncdiagg[angleA=180,armA=2cm,
nodesepA=3pt]{c}{a}

H

T

• \ncangle

Tres segmentos en ´angulo recto; se pueden especificar los ´angulos

de uni´on angleA y angleB, as´ı como el brazo armB

\rput(1,0){\rnode{A}%
{\psframebox{Nodo A}}}
\rput(4,-2){\ovalnode{B}{Nodo B}}
\ncangle[angleA=-90,angleB=90,%
armB=1cm,linestyle=dashed]{A}{B}

Nodo A

Nodo B

• \ncangles Cuatro segmentos en ´angulo recto; se pueden especificar los ´angulos

de uni´on angleA y angleB, as´ı como los brazos armA y armB

\rput(1,0){\rnode{A}%
{\psframebox{Nodo A}}}
\rput(4,-2){\ovalnode{B}{Nodo B}}
\ncangles[angleA=-90,angleB=0,%
armA=1cm,armB=0.5cm]{A}{B}

Nodo A

Nodo B

• \ncloop Se pueden especificar los ´angulos angleA, angleB (con una diferencia
de ±180 grados) los brazos armA, armB, y la distancia del bucle loopsize; n´otese
como tambi´en se puede especificar arm, que equivale a hacer armA=armB

\psset{linewidth=1.5pt,
arrowsize=7pt}
\rnode{a}{\psframebox{\huge Bucle}}
\ncloop[angleA=0,
angleB=180,loopsize=1,
arm=.5cm,linearc=.2]{->}{a}{a}
\ncloop[angleA=90,angleB=-90,
loopsize=2,arm=1cm,linearc=.2,
linestyle=dashed]{->}{a}{a}

4

Bucle

• \nccircle Coloca un circulo alrededor del nodo, se puede cambiar el ´angulo

de inicio angleA; su sintasis es: \nccircle{NodoA}{Radio}

\circlenode{A}{\Large X}
\nccircle{->}{A}{1.2cm}
\nccircle[angleA=90,%
linestyle=dashed]{->}{A}{0.8cm}

X

1.3 Etiquetas

Para poner etiquetas a las conexiones, existen varias posibilidades b´asicas:

\naput[Par´ametros]{Objeto} −→ Coloca Objeto encima de la conexi´on
\nbput[Par´ametros]{Objeto} −→ Coloca Objeto debajo de la conexi´on
\ncput[Par´ametros]{Objeto} −→ Coloca Objeto en medio de la conexi´on
\ncput*[Par´ametros]{Objeto} −→ Coloca Objeto en medio de la conexi´on,

partiendo la l´ınea de conexi´on

Todos estos comandos deben escribirse inmediatamente a continuaci´on del que de-
fine la conexi´on (\ncline, \nccurve, etc...). Podemos ajustar mediante par´ametros
la rotaci´on de la etiqueta (nrot= ´Angulo) y la posici´on de la misma a lo largo de la lista
de conexi´on (npos=N´umero); ´esta se determina a trav´es de un n´umero que ha de ser una
fracci´on del n´umero total de segmentos que posea la conexi´on; as´ı, para cuatro segmentos
(\ncangles) puede variar entre 0 y 4; para 3 segmentos (\ncangle, por ejemplo) entre
0 y 3, etc...

\begin{pspicture}(5,4)
\rput(1,2){\circlenode{A}{X}}
\rput(3,0){\circlenode{B}{Y}}
\rput(3,4){\circlenode{C}{T}}
\rput(5,2){\circlenode{D}{U}}
\ncarc{A}{B}\naput[npos=0.3]{a1}
\nbput[npos=0.7]{a2}
\ncangle[armB=6mm,angleA=0,
angleB=180]{B}{D}
\ncput[npos=1]{b1}\ncput[npos=1.5]
{\pscirclebox[fillstyle=solid,
fillcolor=gray]{\bfseries b2}}
\ncline{->}{D}{C}\ncput*{c2}
\ncline{->}{A}{C}\naput[nrot=45]{d1}
\end{pspicture}

5

X

d1

a1

a2

T

c2

b2

U

Y

b1

1.4 El entorno psmatrix

El paquete pst-node proporciona, adem´as, el entorno psmatrix, el cual posee la misma
estructura que el entorno matem´atico matrix. En ´este entorno, cada celda define
autom´aticamente un nodo etiquetado por sus coordenadas de posici´on en la matrix.
Podemos utilizar comandos de conexiones empleando tales coordenadas de posici´on,
as´ı como a˜nadir etiquetas a las conexiones, con la sintaxis ^ / _ / > / < para etique-
tas arriba/abajo/derecha/izquierda, respectivamente. La separaci´on entre filas y entre
columnas se cambia con los par´ametros rowsep y colsep; tambi´en pueden enmarcarse
los nodos con el par´ametro mnode (que puede tomar los valores circle, oval, tri, dia,
...). Ve´anse los siguientes ejemplos (notando c´omo, en el primer caso, al tener formato
matem´atico algunos de los elementos de matriz, se debe abrir y el modo matem´atico
antes de comenzar psmatrix):

$
\begin{psmatrix}
[colsep=1.5cm,rowsep=1.5cm]
U & & \\ & X\times_Z Y & X \\

& Y & Z % (Definici´on de la matriz)
\psset{arrows=->,nodesep=1mm}

\everypsbox{\scriptstyle}
% (para hacer etiquetas peque~nas)
\ncline{1,1}{2,2}_{y}
\ncline[linestyle=dashed,
doubleline=true]{-}{1,1}{2,3}^{x}
\ncline[linecolor=red]{2,2}{3,2}<{q}
\ncline[linecolor=red]{2,2}{2,3}_{p}
\ncline[linecolor=red]{2,3}{3,3}>{f}
\ncline[linecolor=red]{3,2}{3,3}_{g}
\end{psmatrix}
$

\begin{psmatrix}[fillstyle=solid,
fillcolor=yellow,mnode=circle,
colsep=1.5] & p \\ q & r \\ & s & t
\end{psmatrix}
\psset{linecolor=blue,arrows=->,
labelsep=1mm,shortput=nab}
\nccircle{1,2}{0.5cm}^{6}
\ncline{1,2}{2,1}^{12}
\ncline{1,2}{2,2}^{8}
\ncline{1,2}{3,3}^{9}
\ncline{2,1}{2,2}^{5}
\ncline{2,2}{3,2}^{3}
\ncline{3,3}{2,2}^{10}
\ncarc[arcangle=10]{3,3}{3,2}^{7}
\ncarc[arcangle=10]{3,2}{3,3}^{4}

6

U

x

y

X ×Z Y

q

Y

X

f

Z

p

g

12
5

q

6

p

8

3

r

s

9

10
4

7

t

2 Dibujando funciones

Hemos visto anteriormente el comando \dataplot, ´util para representar conjuntos de
datos. Por otra parte, el paquete pst-plot proporciona dos comandos para representar
gr´aficamente funciones matem´aticas dependientes de una variable:

\psplot[Par´ametros]{xmin}{xmax}{funci´on} −→ Para representar funciones de la
forma y = f (x)
\parametricplot[Par´ametros]{tmin}{tmax}{funci´on} −→ Para representar funciones
en forma param´etrica: (x(t), y(t))

En ambos casos, se deben especificar los valores m´aximo y m´ınimo para los que se cal-
cula el valor de la funci´on. Podemos cambiar el n´umero de puntos en los que se evaluar´a
la funci´on a trav´es del par´ametro plotpoints (por defecto, igual a 50).

La forma de la funci´on debe expresarse en lo que se conoce como “Reverse Polish
Notation” (RPN). As´ı, por ejemplo, para representar la funci´on y = x3 − x el valor
del argumento funci´on debe ser igual a: “x 3 exp x sub” (siempre la inc´ognita debe
escribirse como “x”, en el caso de funciones expl´ıcitas, y “t” para funciones en forma
param´etrica). Afortunadamente, dado que esta notaci´on es bastante compleja, LATEX
proporciona una herramienta de traducci´on; cargando el paquete pst-infixplot podemos
cambiar de la notaci´on RPN a la notaci´on normal (infix). El p
  • Links de descarga
http://lwp-l.com/pdf7157

Comentarios de: Apuntes de LATEX Capítulo 9-2: Dibujando con LATEX (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad