Aprendiendo a generar documentos con LaTeX

Tengo que confesar que jamás he tenido la necesidad de trabajar con LaTeX, pero el otro día me preguntaron sobre él y no supe bien qué contestar, más o menos tenía una idea pero como nunca había generado un documento con LaTeX no sabía ni por dónde empezar así que estoy investigando sobre el tema. Se que es un sistema ampliamente utilizado sobre todo en el entorno académico pero que tiene muchas más complejidades que Markdown con el que me he defendido bastante bien por mucho tiempo.

Read moreAprendiendo a generar documentos con LaTeX

Buscar y reemplazar un texto desde la terminal

Buscar y reemplazar un texto desde la terminal

Uno podría suponer que una tarea de buscar una cadena de texto y reemplazarla desde un programa editor sería una tarea trivial, pero hay veces que no.

El otro día tuve la necesidad de reemplazar una cadena por otra en un archivo de texto simple y llano, nada fuera de lo ordinario, para esto estaba utilizando el editor Atom y según la búsqueda de la cadena tenía un total de un poco más de mil coincidencias, pulsé el botón Replace All  y nada pasó !!!
Dejé pasar un poco de tiempo y nada, para colmo si intentaba “apresurar” el proceso recibía como respuesta un mesaje de Editor is not responding.

Editor is not responding - Reemplazar el texto de un archivo desde la terminal
Al parece el editor estaba demasiado ocupado para atenderme.

Intenté bajar la apuesta usando un editor más simple, lo intenté con gedit y el resultado fue muy similar. Al menos Atom presentaba mejor el archivo y podía trabajar más a gusto con el archivo, pero al llegar al momento de buscar y reemplazar era jugar un albur. A veces lo lograba si presionaba el botón Keep Waiting , pero otras veces no.

Mi computadora tiene recursos más que suficientes para completar la tarea, me parecía imposible que una simple búsqueda y sustitución de una cadena de texto representara tal reto. Además si iba a hacer esto de manera rutinaria tenía que encontrar una solución más eficiente.

Domina la terminal, domina el mundo.

Al principio pensé en utilizar un editor más ligero pero no puede haber nada más ligero que la terminal y supuse que debería de existir algún comando que hiciera la tarea.

Para buscar y reemplazar un texto desde la terminal use el comando sed (stream editor for filtering and transforming text) que con una instrucción muy sencilla hizo el trabajo en menos de un segundo !!!

sed -i 's/original/nuevo/g' archivo.txt

Donde:

  • -i (in place) Es decir, el resultado lo guarda en el archivo original.
  • s (substitute) Busca una cadena y lo que encuentra lo reemplaza por otra.
  • original Es la cadena de texto que va a buscar
  • nuevo Es la cadena de texto que va a sustituir a original
  • g Quiere decir global, o sea que hará el cambio en todas las coincidencias que encuentre en el archivo
  • Y por último archivo.txt es el nombre del archivo sobre el cual va a trabajar.

Y este es tan solo un ejemplo de lo que puede hacer sed, tiene una gran variedad de opciones incluyendo el uso de expresiones regulares y lo mejor es que si es necesario, se puede programar en bash para automatizar tareas que de otro modo se tardarían una eternidad.

Guardaré este comando en mi caja de herramientas linuxeras hasta que lo vuelva a necesitar, por el momento fue de gran ayuda.

El método vi (actualización)

Poco tiempo después de publicar este artículo el buen amigo Rodolfo Zola hizo un comentario en el que me recomienda el uso de vi que también es editor de textos de terminal. Curiosamente la instrucción es muy similar a la de sed.

buscar y reemplazar con vim
Igual de rápido que el comando sed.

En el ejemplo pueden ver que sustituye la cadena em por am en un texto Lorem Ipsum de buen tamaño y lo hizo instantáneamente.

Ahora estoy usando el editor Atom

Pantalla de bienvenida a Atom

Esta es la segunda vez que pruebo el editor Atom, supongo que la primera vez todavía estaba muy verde el proyecto o no fue el momento adecuado para mi, pero en esta ocasión le he invertido un poco de tiempo y pinta realmente bien.

Para empezar es muy configurable y tiene una buena cantidad de opciones que hacen de este editor una buena opción frente a otras ya consolidadas como Haroopad.

Atom es un editor para usuarios de estilo "desarrollador" y con esto quiero decir que su diseño procura mantener al usuario con las manos en el teclado. Existe una infinidad de atajos de teclado, y si por alguna razón se le llega a olvidar alguno entonces puede apelar al shortcut maestro Ctrl + Shift + P y aparecerá un buscador con todas las opciones del programa.

Instalación

Para instalar atom en Manjaro solo tuve que teclear

yaourt -S atom-editor-bin

Probablemente se preguntarán ¿Por qué bin?, al intentar instalarlo tuve problemas para compilarlo debido a un problema con la dependencia npm, así que para no meterme en camisa de once varas instalé esta versión en lugar de la tradicional.

Preparando el camino para Markdown.

Vista previa del código
Escribiendo y viendo el resultado gracias a la vista previa.

Definitivamente la potencia de atom se revela cuando se instalan los packages de la comunidad, ahí es donde la personalización cobra sentido y se puede adaptar este editor a las preferencias de su usuario y eso amigos, es simplemente genial.

Instalar packages es muy sencillo, basta con ir al menú EditPreferencesInstall y agregué los siguientes:

  • markdown-format que es genial, le da una formateada a tu documento, lo hace más legible aunque lo veas en modo texto.
  • markdown-pdf que exporta tu texto al formato PDF.
  • markdown-writer que ayuda con algunos diálogos para insertar los elementos más oscuros markdown.
  • highlight-line este package no tiene nada que ver con markdown, simplemente resalta la línea en la que estoy trabajando y es un efecto que me gusta.

Luego para administrarlos se va al mismo menú pero en la sección Packages para borrarlos o inhabilitarlos.

La ortografía en español (Pour favooour)

Este fue el punto más complicado, actualmente en linux no existe una forma sencilla de decirle al editor que use tal o cual diccionario para verificar la ortografía del documento.

Estuve revisando en internet y el artículo Probando Atom en Ubuntu para escribir usando Markdown me dio una pista. Al parecer lo que funciona es reemplazar los diccionarios en inglés por los de español sustituyendo los archivos, pero hay un pequeño problema, el artículo de el atareao es para Ubuntu y en Manjaro la ruta es diferente.

Me tomó una buena cantidad de tiempo encontrar el directorio con la ubicación de los diccionarios y es… tome nota:

/usr/share/atom/resources/app.asar.unpacked/node_modules/spell-check/node_modules/spellchecker/vendor/hunspell_dictionaries

Corrector ortográfico en español
El corrector ortográfico funcionando en español.

Así que después de descargar los diccionarios, solo tuve que sustituir los archivos en_US.aff y en_US.dic con sus contrapartes en "Spanish", así que primero hice una copia de los diccionarios en inglés (como respaldo), borré los archivos, copie los archivos Spanish.aff y Spanish.dic a la carpeta que mencioné anteriormente y al final los renombré como si fueran en inglés, de esa forma atom no se daría cuenta del cambio y terminaría revisando la ortografía de mis documentos en español de todos modos, sencillo ¿no creen?.