Archivo de la etiqueta: truco

Lo que aprendido: destacar términos de ecuaciones en LaTeX

Hoy en los trucos rápidos de LaTeX tenemos maneras de destacar términos de una ecuación. Esto es especialmente interesante cuando estamos explicando el significado de los diferentes términos de determinada ecuación o queremos remarcar una ecuación especialmente interesante.

Cajas de colores con tcolorbox

Vuelve nuestro viejo amigo tcolorbox para ayudarnos a pintar cajas multicolores en las ecuaciones. Necesitamos antes de nada cargar la biblioteca theorem que carga a su vez el paquete amsmath:

\usepackage{tcolorbox}
\tcbuselibrary{theorems}

Ahora tenemos disponibles los comandos \tcboxmath, que nos dibuja una caja alrededor de una ecuación o uno de sus términos, y \tcbhighmath, un caso especial del anterior que depende del contexto. Estos dos comandos se utilizan igual que otras cajas que hemos visto anteriormente con la única diferencia que van dentro de un entorno para escribir ecuaciones:

\begin{equation}
 a x^2 + bx + c = 0 \rightarrow 
\tcboxmath[colback=magenta!25!white,colframe=magenta, title=Solución]
{x = \frac{-b\pm\sqrt{b^2-4ac}}{2a}}  
\end{equation}

Nos daría este resultado, terriblemente apropiado para poner en un documento científico ❤ :

eqSol

Seguir leyendo →

Lo que he aprendido: el comando find

El comando find me lía. Es así. Así que después de un comentario explicativo de mi hermano he decidido ganarle y aprender a usarlo para no tener que usar locate todo el rato.

Suelo buscar así:

sudo updatedb
locate PATRÓN

Donde PATRÓN es el nombre de lo que quiero encontrar, generalmente usando comodines.

Usando find para hacer lo mismo tendría que escribir:

find LUGAR -name PATRÓN

Seguir leyendo →

Lo que he aprendido: wrapfig

Hoy traigo un truco rápido de LaTeX. Madre mía, siempre hablo de LaTeX últimamente, echadme la bronca maldita sea. En fin, que he descubierto el paquete wrapfig que sirve, como su nombre indica, para rodear las imágenes con texto.

Así funciona:

\begin{wrapfigure}[NÚMERO LÍNEAS]{POSICIÓN}[OVERHANG]{ANCHO}
% Insertar imagen
\end{wrapfigure}
  • NÚMERO DE LÍNEAS es un parámetro opcional que indica el número de líneas de texto que irán en paralelo a la imagen.
  • POSICIÓN indica la posición de la figura respecto al texto, puede tomar los valores l (left), r (right), i (inside, cerca de la unión en los documentos a dos páginas) y o (outside, cerca del borde en los documentos a dos páginas). Todas estos valores tienen versiones en mayúsculas que permiten a la figura flotar, las minúsculas son equivalente a la opción H para las figuras de toda la vida.
  • OVERHANG es un parámetro opcional que indica cuanto margen puede invadir la figura. Por defecto este valor es cero.
  • ANCHO es el ancho del hueco que hay que reservar para meter la figura.

También tiene un entorno equivalente para tablas, wraptable. Hay que tener cuidado porque las figuras y las tablas creadas así no son objetos flotantes como los de costumbre y eso puede dar lugar a cosas raras, pero por lo demás va bastante bien.

He fusionado esta funcionalidad recién aprendida con nuestros viejos conocidos blindtext y tcolorbox para crear este cuadrado con imagen. A ver si sabéis para qué quiero usarlo 😀

colorbox

Seguir leyendo →

Lo que he aprendido: una manera salvaje de actualizar paquetes de LaTeX

Hoy os voy a contar un truco de esos que no hay que usar pero que a mí me encantan. Esto viene de un bug de titlesec que desgraciaba los número de sección y que se solucionaba en la siguiente versión del paquete. Los que usáis tlmgr me diréis que actualizar un paquete es de lo más fácil, pero no lo es tanto cuando dependes de los paquetes viejunos de tu distro linuxera. En fin, ¡ahí va el truco!

Primero localizamos el paquete en cuestión, en este caso titlesec:

ondiz@slimbook101:~$ locate titlesec.sty
/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty

Uso locate porque find me lía, soy así de monger.

Ahora podríamos ir a la carpeta y cambiar su contenido por lo que hay en CTAN para la versión más moderna, pero como solo necesitamos el nuevo sty podemos descargarlo directamente en esa carpeta usando wget:

sudo wget http://mirrors.ctan.org/macros/latex/contrib/titlesec/titlesec.sty -O /usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty

¡Hala! ¡Problema con la versión del paquete solucionada! Evidentemente esta no es la manera de actualizar todos los paquetes, pero nos ayuda en esos casos de desesperación en los que tenemos que acabar algo ya y todo nos va mal.


Suena en mi casa:

Lo que he aprendido: grabando la terminal

Una cosa lleva a la otra y mostrar aquí cómo funciona Yokadi me hizo aprender a grabar lo que iba escribiendo en la terminal. Voy a hablaros de dos programillas:

Script

Script es una herramienta de UNIX que nos permite grabar una sesión de la terminal en un archivo que después podemos reproducir. Es muy fácil de utilizar, empezamos a grabar con script y paramos con exit o Ctrl+D. Si no le damos un nombre de archivo, creará uno llamado typescript:

ondiz@slimbook101:~$ script
Script iniciado; el fichero es typescript
ondiz@slimbook101:~$ echo 'Hola!'
Hola!
ondiz@slimbook101:~$ exit
Script terminado; el fichero es typescript
ondiz@slimbook101:~$ 

Para reproducir lo que hemos grabado usaremos el comando scriptreplay. Para ello necesitamos también el archivo de con los tiempos que generamos así con script:

script -t 2> tiempos

scriptreplay da por hecho que el archivo que tiene que leer se llama typescript (podemas darle otro tras -s) y solo necesita que especifiquemos el archivo con los tiempos:

scriptreplay tiempos

Esto nos repetirá lo que habíamos guardado.

Aquí tenéis su manual para que le deis caña.

Asciinema

Asciinema va un paso más allá y nos genera un vídeo en su web, que luego podemos compartir mediante la URL. Digamos que es como un gist de vídeo.
Si he entendido bien, lo que hace por dentro es grabar lo que vamos escribiendo en un archivo JSON (asciicast) que envía a la web y luego su reproductor interpreta. Este reproductor interpreta los códigos de escape ANSI, las secuencias con las que se controla el formato y movimiento en la terminal. Por ejemplo, si ve un \033[5A mueve el cursor hacia arriba cinco líneas y con \033[0;32m pone el texto de color verde1.

Vamos a ver cómo se usa. Como no lo tenía en los repositorios, lo instalé con pip3:

sudo pip3 install asciinema

Iniciamos la grabación con asciinema rec, nos mostrará este mensaje:

ondiz@slimbook101:~$ asciinema rec
~ Asciicast recording started.
~ Hit Ctrl-D or type "exit" to finish.

Paramos de grabar escribiendo exit o con Ctrl+D, al igual que script. Nos mostrará un mensaje explicando cómo hacer para subir la grabación a la web o matarla:

~ Asciicast recording finished.
~ Press  to upload,  to cancel.

Si le damos un nombre de archivo a asciinema rec, nos guardará el JSON, que tiene esta pinta.

Este archivo podemos reproducirlo en la terminal con asciinema play o subirlo a la web con asciinema upload.

Podéis leer más sobre asciinema en su documentación. Los frikazos hasta podéis hurgar en el código.

Espero que grabéis muchas cosas ahora 😀


  1. Tenéis una explicación mejor sobre los códigos de escape en el capítulo 13 – Customizing The Prompt de The Linux command line 

Lo que he aprendido: git stash

Haber aprendido a usar control de versiones por tu cuenta y riesgo, ser el único de tu entorno laboral que lo usa y para colmo de males ser ingeniero industrial tiene sus problemas. El principal es que no tienes integrado el control de versiones en tu metodología de trabajo y las acabas liando petardas. Empiezas a trabajar en una cosa y luego te das cuentas de que tenías que haber creado una rama, quieres probar dos cosas a la vez y no sabes cómo, etc. En esos casos yo echo mano de mi comando favorito: git stash

Este simpático bicho lo que nos hace es guardarnos el estado actual del repo aparte para que quede limpio y podamos trabajar en otras cosas. Mirad:

$ git stash
Saved working directory and index state WIP on master: 7fe4722 First commit

Luego podemos aplicar los cambios que hemos dejado en espera. Tenemos dos maneras:

git stash pop # lo aplica y lo elimina de la lista de stash
git stash apply # lo aplica pero lo mantiene

Yo uso el apply cuando quiero probar algo que tengo a medio hacer en una rama en otra rama diferente. Si luego queremos que lo quite hacemos:

git stash drop

Por último, me queda decir que podemos hacer más de un stash, git irá poniendo en la lista y podremos acceder a ellos usando su etiqueta. La lista de stash se ve así:

$ git stash list
stash@{0}: WIP on master: 7fe4722 First commit

Por ejemplo, si hubiera un stash número dos podríamos aplicarlo haciendo:

git stash apply stash@{2}

Nada más por hoy. ¡Investiguen y comenten!

Referencias

6.3 Git Tools – Stashing en el Pro Git

Documentación de git stash

Lo que he aprendido: recuperar archivos en Emacs

Hoy traigo truco rápido de Emacs: cómo se recuperan los archivos cuando Emacs muere. Os habréis fijado que si nosotros estamos editando un archivo foo.txt Emacs crea un #foo.txt# y un foo.txt~. El primero de ellos, el de las almohadillas, es el archivo de autoguardado, solo está si tenemos cambios sin guardar. El segundo es la copia de seguridad, Emacs antes de que modifiquemos un archivo crea una copia de seguridad del mismo. Así, si la liamos siempre podemos regresar a un mundo anterior (es muy sabio Emacs).

A nosotros en este caso nos interesa el #foo.txt# porque Emacs se ha roto, se ha ido la luz antes de que guardásemos o demás cosas locas que pasan. Cuando abramos el archivo que no nos ha dado tiempo a guardar Emacs nos dirá que el archivo de autoguardado es más moderno y que podemos recuperarlo con M-x recover-file. Le obedecemos y nos aparecerán listados en un buffer el archivo sin guardar y el guardado automáticamente cada uno con sus tiempos de guardado. Si queremos recuperarlo le decimos que sí, que recupere. No tiene más.

Espero que os sea útil

Más

If Emacs crashes, how can I recover the file I was editing?

Recovery After a Crash en el manual

Backup Files en el manual

GNU Emacs backup files