Archivo de la etiqueta: Latex

Lo que he aprendido: AUCTeX

Me he hartado de usar más de un programa y he decidido que las pocas veces que escriba en LaTeX a pelo lo haré también en Emacs. Así soy, cada día más simple. Para ello estoy usando AUCTeX, un modo hiperpotente que tiene una manual de solo 130 páginas y que se autodefine como un sofisticado entorno TeX para Emacs.

Lo curioso del tema es que instalé AUCTeX hace más de un año porque fue la única manera de hacer funcionar CDLaTeX, el modo menor que ayuda a crear entornos y movidas matemáticas y que uso con Org. En todo este año no he configurado AUCTeX y he seguido usando Texmaker y Kile por pura inercia. Ahora que lo he puesto a mi gusto y que llevo usándolo una semana, he desinstalado el resto de editores de LaTeX y no creo que vuelva atrás, ¡me encanta!

Unas órdenes básicas

Como siempre, para usar AUCTeX hay que instalarlo y activarlo, a mí se me activa solo al abrir un archivo con extensión .tex, pero si no fuera el caso, M-x LaTeX-mode y adelante. Cuidado con confundirlo con latex-mode, el modo para LaTeX que viene con Emacs. Sí, lo hacemos aposta para liar.

Usar AUCTeX es bastante sencillo, hay un par de atajos de teclado que valen para casi todo y que os listo aquí. La palabreja que pongo en cursiva es con lo que yo relaciono la combinación de teclas para acordarme (que puede o no ser la  idea del autor original).

  • C-c C-c (compile) ejecuta una orden, dando a TAB podemos ver las opciones, hay opciones molonas como Clean all y Clean que eliminan respectivamente todo lo creado por la compilación y solo los archivos auxiliares.
  • C-c C-v (view) muestra el resultado.
  • C-c C-e (environment) introduce un entorno y te va pidiendo los datos que necesite.
  • Si tenemos el activado el parser automático, con C-c C-a (all) deduce qué tiene que usar y compila las veces que haga falta. No viene activado por defecto porque tarda un poco. Esta historieta nos fabrica una carpeta `auto` con cosas dentro, no os asustéis como hice yo. En el archivo de configuración que he puesto más abajo podéis ver cómo se activa.

Como hereje del Emacs que soy os voy a decir algo: no hace falta aprenderse todo esto. Utilizad la GUI y los menús desplegables sin pudor alguno (yo lo hago, un botón tiene un leoncito muy cuqui).

Sigue leyendo

Lo que he aprendido: de SVG a TikZ con Inkscape

Amo Inskape. A pesar de estar en la versión 0.92, funciona maravillosamente, tiene montones de funcionalidades y, por si fuera poco, al más puro estilo software libre, se pueden escribir extensiones que hagan lo que nos apetezca.

Como yo no soy tan hábil como para escribir mis propias extensiones, me aprovecho de la sabiduría de la comunidad para hacer cosas como la que os venía a contar hoy: exportar un svg a TikZ.

Un poco de contexto

Inkscape carrula con imágenes en formato SVG (Scalable Vector Graphics), un formato de gráficos vectoriales definidos en un XML. Que son texto plano, vamos, y podemos abrir una imagen SVG con un editor de texto y ver su definición. La ventaja de usar gráficos vectoriales es que no perdemos calidad al ampliar las imágenes porque los elementos se definen en función de su posición en el dibujo, si el dibujo es más grande las posiciones cambian y los elementos se dibujan de acuerdo a ellas.

TikZ, por su parte, es un paquete de TeX para crear gráficos vectoriales programáticamente1 (qué palabra más maravillosa). De esta manera, los gráficos nos quedan perfectamente integrados en nuestro documento y podemos cambiar el tipo de fuente, tamaño o lo que sea de ambas cosas simultáneamente.

Bien, la cuestión aquí es que usar TikZ es tremendamente difícil y usar Inkscape tremendamente sencillo y ¡LaTeX no tiene soporte para SVG! En general, suelo exportar las imágenes de Inkscape como EPS, manteniendo el texto como LaTeX, pero hay veces que me resulta más práctico tener la definición de la imagen en el propio archivo con el texto.

La extensión svg2tikz

Para esos casos en los que por lo que sea queremos que nuestra imagen esté definida en TikZ, tenemos la extensión de Inkscape svg2tikz. Son tres archivos, dos de extensión de Inkscape y uno de Python que están en la carpeta extensions del repositorio y que tenemos que copiar en la carpeta de extensiones de Inkscape, tal y como indican en las instrucciones. Será o bien /usr/share/inkscape/extensions o ~/.config/inkscape/extensions/2.

Cuidado aquí que yo guardé los archivos directamente del GitHub con Guardar destino como… y luego no me reconocía la extensión. Descargando todo el repo y copiando los archivos correspondientes en cambio sí que me funcionó.

Ahora en el menú Extensiones > Exportar tendremos una nueva opción Export to TikZ path que nos permitirá guardar la imagen como TikZ. Vigilad la ruta porque por defecto no la guarda en la carpeta donde estaba la imagen original sino en la carpeta de las extensiones.

Y ale, ya podemos chulear diciendo que nosotros hacemos todo directamente en LaTeX como hacían los profesores de mecánica de mi universidad que calculaban la base y la ruleta con la fórmula y luego decían que se veían directamente en el dibujo.

Referencias

Chapter 22. Extensions en el manual de Inkscape

svg2tikz

Galería de extensiones de Inkscape

inkscapeMadeEasy


Suena:


  1. Lo usé de tapadillo para pintar estructuras y que me quedaran cuquis lo apuntes, no sé si recordáis. 
  2. Como uno de mis propósitos del 2019 es ir abandonando las tecnologías privativas, voy a intentar hablar lo menos posible de Windows. 

Lo que he aprendido: ejemplos con código en LaTeX

Estaba currelando en mis traspas para el curso de LaTeX para los doctorandos de mi uni y me pareció buena idea mostrar junto el LaTeX y el resultado para las tablas, ecuaciones y demás mandanga. Sabía que el paquete tcolorbox permite hacer esas historias, pero me parecía demasiado para la poca cosa que quería hacer. Así que hurgué un poco y me encontré con showexpl, un paquetillo que sirve precisamente para hacer lo que yo quería.

No os voy a contar gran cosa porque no deja de ser un añadido a listings que nos da el entorno LTXexample para escribir el código en un lado y el resultado en el otro. De hecho, en las opciones del entorno se puede meter la configuración de los listados y los pies funcionan exactamente igual que los de lstlisting.

Os dejo un ejemplo con los colores de la plantilla de beamer que estoy usando para que juguéis, es bastante claro lo que hace todo:

\documentclass[a4paper]{article}

\usepackage{xcolor}
\usepackage{amsmath}

\usepackage[final]{showexpl}

% Definición de colores
\definecolor{colororange}{HTML}{E65100} % orange
\definecolor{colordgray}{HTML}{795548}  % dark gray for note
\definecolor{colorhgray}{HTML}{212121}  % heavy dark gray for normal text
\definecolor{colorgreen}{HTML}{009688}  % green
\definecolor{colorlgray}{HTML}{FAFAFA}  % background light gray
\definecolor{colorblue}{HTML}{0277BB}   % blue

% Estilo de código
\lstset{
        tabsize=2, 
        backgroundcolor=\color{colorlgray},
        captionpos=b, 
        basicstyle=\small\ttfamily,
        columns=fixed, 
        extendedchars=true, 
        breaklines=true,
        prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
        showtabs=false, 
        showspaces=false,
        keywordstyle=\bfseries\color{colororange},
        commentstyle=\color{colorgreen}, 
        stringstyle=\color{colorblue},
        language={[LaTeX]TeX},
        texcsstyle=*\color{colororange}
}

\begin{document}

% Ejemplo de código
\begin{LTXexample}[pos=r,wide,width=.7,rframe={}]
% - pos: lugar donde saldrá el resultado
% - width: anchura relativa del resultado
% - rframe={}: para que no me ponga un cuadrado alrededor
\begin{equation}
  A = \pi\times R^2
\end{equation}
\end{LTXexample}

\end{document}

que nos crea esto:

A la izquierda el código de LaTeX necesario para escribir una ecuación. A la derecha la ecuación.

Ale, cambiadme parámetros y cosas y me decís qué os sale.

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:

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: 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: