Archivo de la categoría: Lo que he aprendido

Lo que he aprendido: magit

He empezado a usar Magit. Tanto escuchar Magit es el mejor modo para git jamás creado y yo empecé a usar Emacs por Magit me han convencido a darle una oportunidad. Eso y que el modo git normal que usaba no me carrula bien en el ordenador del curro (¡Windows!).

La cuestión es que Magit me flipa, puedo manejar mi repo desde Emacs solo dando a un par de teclas y ayudando por tanto a mis pobres bracitos lesionados por el ordenador.

Lo más curioso de este modo es que funciona a base de ventanitas (pop ups) en las que se nos dan opciones diversas. A cada ventanita se accede con una tecla y podemos acceder a la ventanita de las ventanitas con h (help). Cada ventanita se divide en dos pedazos, en la parte superior activamos las opciones y en la inferior elegimos el comando. No os preocupéis que enseguida lo veremos todo mucho más claro.

Por cierto, si como yo usáis Emacs con GUI y menús (¡sacrilegio!) tendréis en la barrita un menú de Magit con las diferentes órdenes y sus teclas correspondientes.

Lo básico: status, add y commit

Empezamos a usar Magit en un repositorio existente diciéndole que nos muestre el estado del mismo en una de sus ventanitas con la siguiente orden:

M-x magit-status RET
magitStatus

La ventanita de estado

Sigue leyendo

Anuncios

Lo que he aprendido: configurar Texmaker

Como sabéis uno de mis objetivos vitales es convertir a todo el mundo a LaTeX y en mi currelo lo estoy consiguiendo. Para hacer esta conversión más sencilla, suelo recomendar empezar con un editor específico, generalmente Kile en GNU/Linux y Texmaker o TeXstudio en Windows. Hoy voy a recoger aquí la configuración básica de Texmaker para empezar a andar ya mismo.

Trataremos:

  • La compilación, especialmente la opción de compilación rápida
  • El corrector ortográfico
  • La codificación
  • Los asistentes

Compilación

Texmaker permite elegir, al igual que el resto de editores específicos de LaTeX permite elegir el compilador con el que queremos que se fabrique nuestro documento1. Simplemente vamos a la barrita superior y elegimos lo que queramos en el desplegable, luego al darle a la flechita de la izquierda, él compilará con el programa correspondiente:

compilador

Incluso podemos definir una lista de órdenes que ejecute una tras otras, cosa que nos facilita la vida en el caso de que estemos usando referencias cruzadas y citas bibliográficas para el que necesitamos varias pasadas del compilador y otra de la herramienta que nos gestiona la bibliografía. A esta historia la llama Compilación rápida y podemos configurarla en Opciones > Configurar Texmaker:

compilacion

El caso típico es el segundo, que nos crea el documento con todas sus referencias y citas. Yo he configurado la compilación rápida como una pasada de xelatex seguida de otra de bibtex y otras dos de xelatex que resultan en un churro así:

xelatex -synctex=1 -interaction=nonstopmode %.tex|bibtex %|xelatex -synctex=1 -interaction=nonstopmode %.tex|xelatex -synctex=1 -interaction=nonstopmode %.tex

Da miedito, pero no hace falta sabérselo de memoria, ya que tenemos el asistente que nos deja establecer nuestra secuencia favorita en un par de clicks:

asistente

¿A que es chuli?

Ortografía

Que no estemos usando Word no significa que no tengamos corrección de nuestros gambazos ortográficos. Al igual que Libre Office, TeXMaker usa los diccionarios de Hunspell, unos archivo dic y aff de los que debemos darle la ruta. Estos archivillos los tenemos por ejemplo en el GitHub de Libre Office para un montonaco de idiomas.

ortografia

¡Cuidado que la corrección no empieza al inicio! Empieza donde esté situado el cursor.

Codificación

En el mismo sitio donde hemos configurado el corrector podemos decirle también qué codificación queremos, yo le pongo UTF8 que es la codificación que uso luego en el documento, o bien añadiendo la línea \usepackage[utf8]{inputenc} si compilo con pdflatex o compilando con xelatex que ya soporta UTF8 de por sí.

Asistentes

Una cosa molona de Texmaker es que tiene una pila de asistentes para ayudarnos a hacer cosas, lo más guay es la barrita lateral que nos facilita añadir referencias cruzadas y bibliográficas listando las etiquetas que tenemos disponibles, cambiar el formato o meter fórmulas. Hurgad en ella un poco y veréis qué molona es.

texmaker

También son chachis los asistentes que están en Órdenes de LaTeX arriba del todo, os pongo como ejemplo el de \includegraphics{file}, que como su nombre indica, ayuda a insertar imágenes:

imagen

Poco más os puedo decir, ahora ya os toca a vosotros jugar y ver qué tal se os da, para lo demás ya sabéis que está la documentación.

Referencias

Documentación de Texmaker


Suena ahora:


  1. Hablé de los compiladores en el capítulo ¿Qué necesito? del Curso de LaTeX 

Lo que he aprendido: diagrama de fuerzas con TikZ

Andaba yo escribiéndoles un ejemplo a mis alumnos sobre el método de los nudos para calcular las fuerzas en las barras de una celosía, cuando me surgió el dilema de cómo dibujar el diagrama de fuerzas en cada nudo. ¿Sería práctico hacerlo en Libre Office Draw? ¿O sería mejor mi adorado Inkscape? En estas vi un ejemplo de TikZ de Kjell Magne Fauske (¡y que se comparte con licencia CC!) en el que se hacía algo similar y me dije ¡aprendamos un poco de TikZ!

Estuve hurgando un rato y finalmente me contenté con esto:

Que nos dibuja este simpático cacharro:

fuerzas

Evidentemente, esto se puede hacer mejor aprendiendo un poco más, pero quería demostrar cómo con un ejemplo, Internet y unas pocas ganas podemos adaptar algo existente en algo que nos sirva para nuestros propósitos.

¡Hay que quitarse los miedos, leches!

Referencias

Example: Free body diagrams en TeXample

Basic Drawing Using TikZ

Online LaTeX diagram graphical editor en TeXexchange


Sonando:

Lo que he aprendido: el ratón y org mode

Como ya os he dicho más veces uso Emacs de una manera un tanto curiosa, con su GUI y hasta con el ratón porque al final me muevo en un entorno gráfico y me encaja mejor así con el resto de herramientas (sí, uso cosas que no son Emacs). Parece ser que yo no soy la única, ya que hay modos de Emacs que añaden funcionalidades molonas al ratón y entre ellos mi favorito es org-mouse.el, que como su nombre indica se usa en mi amado modo Org.

Sirve para lo siguiente:

  • Nos muestra un menú contextual al hacer click derecho en diferentes elementos
  • Permite abrir y cerrar árboles con un click izquierdo
  • Marca casillas de las listas de tareas al hacer click izquierdo sobre ellas

Parece poca cosa pero hacen de Emacs un lugar más amigable para los novatillos, los desmemoriados o los vagos, tres categorías a las que pertenezco.

Para activarlo solo hace falta añadir una línea al archivo de configuración:

;; Cargar org-mouse
(require 'org-mouse)

Podéis ver este modo en acción en este screencast1:

Referencias

How to setup org-mouse to intuitively toggle checkboxes on org-mode? en StackExchange

5.6 Checkboxes en el manual de Org


Os dejo con una canción que he localizado por casualidad:

Lo que he aprendido: gráficos con InkScape y LaTeX

Hablando en las redes libres sobre mis dibujos molones de estructuras y mis pesquisas para encontrar un paquete similar que pintase masas con muelles y amortiguadores, me dijeron que el maravilloso InkScape es capaz de exportar en un formato legible por LaTeX que permite que la letra de nuestras imágenes se acomode al estilo de nuestro documento.

Evidentemente, tuve que probarlo. Era el camino a un mundo en el que las letra de las figuras y la de texto son perfectamente iguales, un magnífico lugar en el que cambiar la fuente del texto no implica ir cambiando los gráficos uno a uno. ¡Oh, qué felicidad!

En fin, veamos cómo se hace, la cuestión es que al guardar como pdf (o como eps) nos aparece la opción Omitir texto en pdf y crear archivo LaTeX:

inkscape

De esta manera, InkScape nos exporta por una parte un archivo pdf_tex (o eps_pdf) que es texto plano y podemos abrir y leer, donde se define el texto de la imagen, y por otra un pdf (o eps) donde se guarda la parte gráfica.

Este pdf_tex o eps_tex lo importamos en LaTeX con \input dentro de una figura:

\begin{figure}
\centering
\def\svgwidth{\columnwidth}
\input{ruta/dibujo.pdf_tex}
% si hemos exportado como eps será: \input{dibujo.eps_tex}
\end{figure}

Donde la parte de \def\svgwidth{\columnwidth} sirve para cambiar el tamaño de la figura.

Una cosa a tener en cuenta es que si el dúo pdfpdf_tex no está en la misma carpeta que el archivo desde el que lo llamamos, tenemos que añadir su localización a la ruta donde LaTeX busca las imágenes. Para ello solo hace falta escribir la siguiente línea en el preámbulo:

\graphicspath{{CarpetaConImágenes/}}

¡Y ale! Nuestro gráfico aparecerá con la misma letra que nuestro texto. Hay que tener en cuenta que como no se sabe de antemano el tamaño de letra, igual nos queda un poco movida, para restringir esto un poco en teoría podemos usar la herramienta de posicionamiento de InkScape aunque va un poco a lo loco. Aun así, todo este tema me parece muy útil.

Por cierto, he leído que también se puede hacer que se actualice la imagen sola siempre que la cambiemos, pero yo no he llegado tan lejos. Os lo dejo de deberes.

¿Qué hay mejor que InkScape para celebrar San Valentín? 🙂

Referencias

How to include a SVG image in LaTeX (pdf)


Siguiendo con el rollo del amor, esto es lo que suena en mi mente ahora:

Lo que he aprendido: diagramas de Gantt en PlantUML

¡He encontrado una frikimanera de hacer diagramas de Gantt! Está todavía en fase de desarrollo pero incluso así ya es bastante más práctico que pintar cuadraditos en una hoja de cálculo. El cacharro este se llama PlantUMl y es parecido a Ditaa, también es un jar que se usa desde la terminal.

Los diagramas se definen en un archivo de texto en un lenguaje natural, un ejemplo:

@startgantt
Project starts the 1th of februrary 2018
[Tarea 1] as [T1] lasts 8 days
[Tarea 2] as [T2] starts at [T1]'s end and lasts 7 days
[Tareas 3] as [T3] starts at [T2]'s end and lasts 23 days
[Tarea 4] as [T4] starts at [T3]'s end and lasts 7 days
@endgantt

Se pueden usar nombres abreviados para hacer referencia a las tareas, cambiar el color, … Si guardamos la definición en un archivo gantt.txt, por ejemplo, podemos crear nuestro diagrama con una línea de este tipo:

java -jar plantuml.jar -teps -charset UTF-8 gantt.txt

Aquí he usado las opciones teps para que me exporte en eps y charset para decirle que use la codificación UTF8 y me pinte bien las tildes. Hay otras opciones para guardar el gráfico, las tenéis en el manual.

Yo concretamente, uso PlantUML en Org (como todo) escribiendo la definición del gráfico dentro de un bloque de código para que me incluya el dibujete dentro del documento exportado:

#+BEGIN_SRC plantuml :file gantt.eps :cmdline -charset UTF-8 -teps
@startgantt
Project starts the 1th of februrary 2018
[Tarea 1] as [T1] lasts 8 days
[Tarea 2] as [T2] starts at [T1]'s end and lasts 7 days
[Tareas 3] as [T3] starts at [T2]'s end and lasts 23 days
[Tarea 4] as [T4] starts at [T3]'s end and lasts 7 days
@endgantt
#+END_SRC

Como veis, las opciones que antes dábamos en la terminal van ahora después de :cmdline. Al ejecutar este trocito de código1, se generará esta imagen como resultado:

Aparte de diagramas de Gantt, con PlantUML pueden pintarse todo tipo de chirimbolos, tiene una versión online para que vayáis probando 😀

Referencias

Diagramas de Gantt en PlantUML

Guía de PlantUML


Sonando:


  1. ¡Recordad darle permiso a Emacs para ejecutar código de PlantUMl añadiendo este lenguaje a la lista

Lo que he aprendido: estructuras con TikZ

Estaba yo fabricando mis transpas para dar clase cuando se me ocurrió que tal vez hubiera un paquete de LaTeX para dibujar diagramas de estructuras. Sí, ya sabéis, las míticas celosías que se unen al suelo con triangulitos o triangulitos sobre ruedecitas. Evidentemente, lo hay, se llama stanli, es un paquete basado en TikZ y está tanto en GitHub como en CTAN.

La idea del paquete es definir una librería de objetos que luego nosotros podremos utilizar para crear nuestras estructuras sin tener ni idea de TikZ, como es mi caso. Solo tendremos que recurrir a los comandos \point, \beam, \support y demás para montar piecita a piecita nuestro diagrama.

A la hora de usarlo hay que tener en cuenta dos cosas:

  • El manual en pdf que aparece en GitHub no está actualizado, os recomiendo compilar el archivo stanli.tex para que se corresponda con el paquete en sí.

  • La versión de GitHub y la de CTAN son distintas, yo estoy utilizando la de GitHub porque me permite poner apoyos con ruedecitas (los tipos Xoo y Xooo, con dos y tres ruedecitas respectivamente).

Por lo demás no hay ningún problemas, es facilísimo de usar y trae hasta un tutorial en el manual. Yo simplemente os dejo aquí un ejemplo, lo uso en conjunto con units para que me ajuste las distancias con las unidades correctamente:

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{stanli}
\usepackage[ugly]{units}
\begin{document}
\begin{tikzpicture}

  \scaling{0.5};

  % Nodos 
  \point{a}{0}{1};
  \point{b}{5}{1};
  \point{c}{10}{1};

  % Barras
  \beam{2}{a}{b};
  \beam{2}{b}{c};

  % Apoyos
  \support{1}{a};
  \support{2oo}{c}; 

  % Uniones
  \hinge{1}{b};

  % Fuerzas
  \lineload{1}{a}{b}
  \load{1}{c}[90];

  % Nombres de nodos
  \notation{1}{a}{A}[left];
  \notation{1}{b}{B};
  \notation{1}{c}{C};

  \notation{1}{c}{\unit[500]{N}}[above=10mm, left];   

  % Cotas
  \dimensioning{1}{a}{b}{-1}[{\unit[1]{m}}];
  \dimensioning{1}{b}{c}{-1}[{\unit[1]{m}}];

\end{tikzpicture}
\end{document}

Compilándolo tendríamos este simpático diagrama:

estructura

Hay cosas que se pueden mejorar, pero la verdad es que el resultado es muy bueno y es con diferencia la manera de crear diagramas más fácil que he visto.

Si tengo un rato a ver si les hago un pull request con los problemillas que he visto en el repo.

¡Espero que os resulte tan útil como a mí!

Referencias

TikZ Library for Structural Analysis

Structural analysis best package en TeX Exchange


¡Música!