Archivo de la categoría: Lo que he aprendido

Lo que he aprendido: censura en LaTeX

¡Vuelve LaTeX al blog! Hoy os traigo un paquete curioso que he descubierto gracias a una típica conversación de café: el paquete censor, que como su nombre indica sirve para censurar documentos, es decir, hace el efecto del subrayador negro de la CIA.

Es tan fácil de usar como cargarlo en el preámbulo:

\usepackage{censor}

Y luego usar sus comandos de censurar, el más básico es \censor

La Universidad de \censor{Gatetes Reunidos}

que nos da este resultado:

censor.PNG

También tenemos los comandos \censorbox para censurar imágenes y tablas, y\blackout y \xblackout para tachar cachos largos de texto, que funcionan exactamente de la misma manera. Luego, cuando queramos desclasificar el documento, solo hacer falta añadir \StopCensoring al inicio y toda la información clasificada volverá.

Todos estos comandos correspondes a la creación en entorno seguro, en la información aparece en el .tex y solo es tachada en el pdf compilado. Pero también tiene un modo de creación en entorno inseguro en la que ni siquiera aparece la información en el .tex, sino que deja huecos que podemos rellenar cuando estemos en una máquina 100% segura. Esta parte os la dejo de deberes.

En fin, con esto demuestro que hay un paquete de LaTeX para todo y que tu tesis puede seguir siendo pública aunque tenga partes confidenciales.

Referencias

Manual del paquete


Suena:

Anuncios

Lo que he aprendido: fuente de Emacs

¡He aprendido a cambiar la fuente de Emacs! Y no solo eso, sino que he conseguido que sea diferente según el sistema operativo en el que nos encontremos.

Todo esto ha venido porque la fuente por defecto de Emacs en Windows no me diferenciaba los ceros y la letra O y los unos y la L minúscula y me estaba volviendo loca. Aprovechando que en Matlab me había pasado a Consolas, decidí que de ahora en adelante usaría Consolas al estar en Windows (es una fuente propietaria pero que viene incluida en Microsoft Office). En GNU/Linux he seguido con la que se establecía por defecto1, Roboto Mono, que aunque la creó Google, lleva licencia Apache.

Como yo quería que Emacs eligiera la fuente según el sistema operativo, necesitaba averiguar primero cómo le llamaba Emacs a mi sistema operativo. Esto puede conseguirse evaluando la variable system-type, o bien con M-x eval-expression o con M-:. Así supe que esta variable toma el valor de windows-nt en Windows y gnu/linux en GNU/Linux. Algo totalmente inesperado dicho sea de paso.

Bien, ahora me faltaba averiguar cómo cambiar la fuente y crear un if. Lo primero es simple, solo hay que añadir cualquiera de estas líneas al archivo de configuración:

;; Establecer fuente
(set-face-attribute 'default t :font FUENTE :height TAMAÑO)
;; Establecer familia de fuentes
(set-face-attribute 'default t :family FAMILIA :height TAMAÑO)

El if tampoco es mucho más complejo, solo hay que tener en cuenta que tiene miles de paréntesis:

(if (condición)
(Expresiones si se cumple la condición)
(Expresiones si no se cumple la condición))

Fusionando ambas cosas me quedó esto:

;; Fuente
(if (eq system-type 'windows-nt)
    (set-face-attribute 'default nil :family "Consolas" :height 110)
    (set-face-attribute 'default nil :family "Roboto Mono" :height 110)
)

Evidentemente se puede mejorar añadiendo una condición de que use la fuente correspondiente solo si está disponible o de otras manera diversas que ahora no se me ocurren pero a vosotros sí porque sois muy listos. La cuestión es que hurgando un poco se puede conseguir casi cualquier cosa en Emacs y por eso me encanta.

Ale pues, os dejo, ¡contadme cosas en los comentarios!

Referencias

How to determine the operating system in elips? en StackOverflow

Emacs: Font Setup en Ergo Emacs

38.3 Operating System Environment en el manual de Emacs

37.12.1 Face Attributes en el manual de Emacs


Sonando:


  1. Para ver qué fuente está usando Emacs podemos hacer M-x describe-font 

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

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: