12 de julio de 2014

LaTeX - diseño gráfico con jPicEdt

Resulta muy laborioso realizar gráficos, dibujos o diagramas utilizando el lenguaje LaTeX. Sin embargo, se pueden generar documentos ligeros con gráficos de calidad óptima. Esto es la principal motivación para utilizar gráficos creados con LaTeX.

jPicEdt es una herramienta WYSIWYG (en español, "lo que ves es lo que obtienes") para editar gráficos vectoriales y que permite exportarlos al ambiente picture de LaTeX (entre otros formatos). La última versión disponible es jpicedt-install_1_6-pre1_20131007.jar (11.4 MB).

Es un programa gratuito y multiplataforma escrito en java. Para instalarlo en GNU Linux se tiene que hacer en modo superusuario (root), y para lanzarlo se tipea jpicedt en la línea de comandos. En Windows se instala en la carpeta que especifiques, por default en C://jpicedt, donde se genera un acceso directo.

jPicEdt puede realizar gráficos más elaborados si se incluyen otros paquetes de LaTeX, aquí solo nos enfocaremos al ambiente picture para realizar gráficos sencillos. Básicamente el ambiente picture trabaja con:
  • textos (incluyendo formulas), 
  • cajas (con y sin recuadro),
  • líneas rectas y flechas (vectores),
  • círculos y óvalos. 
Como ejemplo considere el brazo rotacional planar de 2 grados de libertad (g.d.l.).
Brazo robótico made in CICESE
Brazo robótico de 2 g.d.l. made in CICESE
El diagrama de fuerzas del robot de 2 g.d.l. se puede dibujar con jPicEdt como se muestra en la siguiente imagen.
Gráficos en LaTeX con jPicEdt
El gráfico se guarda como archivo .tex y se puede incluir en cualquier documento de LaTeX sin necesidad de añadir algún paquete. Observasiones:
  • Se puede escalar el gráfico con el comando \def\JPicScale{escala}
  • El origen del dibujo es la esquina inferior izquierda. 
El código:
\documentclass[12pt]{report}
\begin{document}
\begin{figure}
\begin{center}
\def\JPicScale{1} %Escala
\input{robot2gdl} %Gráfico
\end{center}
\caption{Two-link revolute joint arm.}
\end{figure}
\end{document}
produce:

Descarga el ejemplo aquí.