Archivo de la etiqueta: Latex

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:

Anuncios

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!

Lo que he aprendido: ecuaciones rápidas con CDLaTeX

Ando últimamente bastante liadilla y agradezco cualquier herramienta que me facilite la vida. Una que me hace muy feliz es el modo menor de Emacs CDLaTeX, que acabo de descubrir y se ha convertido en imprescindible en mi día a día. En concreto lo uso en combinación con el modo Org, que trae su propia variante org-cdlatex. Paso a hablaros sobre ello.

El modo CDLaTeX

Tal y como dice en su README, CDLaTeX es un modo menor para la inserción rápida de entornos y movidas matemáticas en LaTeX:

CDLaTeX is a minor mode for Emacs supporting fast insertion of environment templates and math stuff in LaTeX

Lo escribió el mismo señor que el modo Org, Carsten Dominik, y se puede encontrar tanto en MELPA como en Github. Requiere texmathp.el que dicen que es parte de Emacs a partir de la versión 21.3, pero yo tuve que instalar AucTeX (que también lo contiene) para hacerlo funcionar.

Ecuaciones rápidas

La idea de este modo es evitarnos el tedio de escribir desde cero las ecuaciones de LaTeX y los símbolos matemáticos. Es muy listo y sabe cuándo estamos dentro de un bloque matemático (entre \begin{equation} y \end{equation}) y cuándo no, y así activa y desactiva funcionalidades según el contexto. Por ejemplo, al escribir un guión bajo nos añade automáticamente las llaves para que escribamos dentro el subíndice.

La tecla principal de este modo es el TAB, que hace de todo:

  • Predice comandos: si lo pulsamos después de haber escrito una parte de un comando nos lo completa. Me encanta porque equ + TAB inserta directamente un entorno de ecuaciones, ¡así de fácil! Podemos ver todas abreviaturas con M-x cdlatex-command-help.

  • Reduce subíndices y superíndices simples: nos escribe automáticamente las llaves para los subíndices y superíndices pero podemos eliminarlas para los casos de una sola letra pulsando el TAB delante de la llave de cierre.

  • Mueve el cursor a la siguiente unidad de interés: podemos avanzar por las ecuaciones con el TAB alegremente.

No solo del TAB se vive, también tenemos otras funcionalidades chulas:

  • Entornos rápidos C-c { nos mete entornos como align dentro del bloque de ecuaciones.

  • El apóstrofe modifica el carácter anterior, añadiendo un punto encima u otras movidas locas matemáticas. Si lo pulsamos y esperamos un poco nos aparece un cuadro con todas las opciones disponibles.

  • El acento grave introduce comandos, por ejemplo `a escribe \alpha tanto dentro como fuera del entorno matemático, `b escribe \beta y así sucesivamente. Varios acentos cambian de nivel, tomando el caso de la letra l como ejemplo, precedida de un acento escribe \lambda, con dos acentos \ell, y con tres \log. Lo que es utilísimo para los que escribirmos mucha mate. ¡Un truco! Para escribir letras griegas mayúsculas, tras introducir una con el acento grave y la letra, podemos usar M-b para movernos al inicio de la palabra y M-c para que Emacs nos la ponga en mayúsculas. Es fantástico. Al igual que el apóstrofe, si esperamos un poco después de pulsarlos nos aparece un cuadro con las opciones.

Lo único que me queda por contaros es que si este modo os conquista como a mí, podéis activarlo siempre con Org añadiendo esta línea al archivo de configuración:

;; Activar CDLaTeX con Org mode
(add-hook 'org-mode-hook 'turn-on-org-cdlatex)

¡Y hala! ¡Productividad a tope! 😀

¿Vosotras qué modos y herramientas usáis para simplificar vuestro trabajo? Ilustradme, porfis.

Referencias

org-cdlatex en el manual de Org

CDLaTeX en GitHub


Últimamente estoy dejando salir a mi celta interior:

En que ando: julio

La noticia fundamental del mes de julio es que ¡terminé de escribir el curso de LaTeX! La entrada de Pandoc y la de mi proceso de escritura cerraron el cursete que llevaba en marcha desde noviembre. Escribí también una entrada sobre el presente y el futuro del curso. Lo que me falta es mejorar los ejemplos, os agradezco cualquier sugerencia que me hagáis al respecto. Además, hablé de la idea loca de hacer una campaña de financiación colectiva, de la que os iré informando según vaya avanzando.

Ahora os iré contando mis movidas con la detección de erratas y así, la primera ya ha ocurrido, me pasaron cosas locas con el tamaño del papel con XeLaTeX que ya están arregladas. También configuré el quickbuild de Kile.

Ahora estoy a tope con Octave para que si algún día vuelvo a las trincheras no se me haya olvidado todo lo aprendido. De momento he instalado la ayuda y he aprendido cómo va el archivo de configuración. También tengo intención de retomar mi querido Haskell, que el pobre se quedó un poco en el olvido.

Seguir leyendo →

¡Publiquemos juntos el libro de LaTeX!

En la entrada sobre el presente y el futuro del Curso no convencional de LaTeX os contaba que me hacía ilusión que se volviera un libro de verdad. Muchos me dijisteis que costaría pasta pero que podía intentarlo y otros me recomendasteis plataformas que imprimen el libro en papel bajo demanda. He estado pensando sobre el tema y he tenido una idea que me gustaría probar: hacer una campaña de financiación colectiva.

Hoy voy a intentar responder a las preguntas que me he ido haciendo, mientras voy desarrollando la campaña poco a poco.

¿Por qué no publicar el libro en una plataforma online?

La primera pega que le veo a poner el libro en una plataforma que imprime al gusto del consumidor es que no tengo ni idea de quién y en qué condiciones imprime eso. Intento ser lo más fiel posible a la filosofía de invertir localmente por lo tanto me gustaría que ese dinero se lo llevara alguien de mi entorno que a su vez pueda revertirlo en la sociedad.

Otra tema es que lo que más me gusta de escribir es tener contacto con los que leen (es por eso que escribo en un blog y no en el periódico, por ejemplo). Me mola el rollo comunidad. Me gustaría que el libro fuera de todos los que ayuden a convertirlo en algo de verdad, hablar con ellos y que vean el proceso. Del mismo modo que os cuento aquí lo que hago y tal. Soy un poco exhibicionista. No sé hasta que punto una plataforma de este tipo me permite esta interacción.

Mi última pega es que paso de enriquecer a una alguien que no aporta nada sino que se aprovecha de lo que crean los demás. Ya que lo haría por aprender y no por sacar panoja prefiero que el intermediario tenga un enfoque social. Que sí, que soy muy rara.

Seguir leyendo →

Lo que he aprendido: el tamaño de papel con XeLaTeX

Aquí ando probando diferentes formatos para el libro de LaTeX cuando me he dado cuenta de algo: XeLaTeX ignora el tamaño del papel que definimos en la clase del documento.

Por ejemplo, si creamos un documento con:

\documentclass[a5paper]{book}

y compilamos con XeLaTeX nos queda algo así:

a5mal

La letra ocupa lo de un A5 pero el papel sigue siendo más grande. Si vamos a las propiedades del documento, veremos que es de tamaño US letter:

usletter

Curiosamente al compilar con pdfLaTeX el tamaño del papel se asigna correctamente.

Resulta que el problema es que a LaTeX le importa un pimiento el papel en el que vamos a imprimir y lo ignora. Hay paquetes como geometry y hyperref y compiladores como pdfLaTeX que lo tienen en cuenta, pero xeLaTeX no (¡el muy vago!). De esta manera, solo con cargar geometry o hyperref el tamaño del papel cambia, lo que me parece una genialidad. Este es el motivo por el que no me había dado cuenta antes, ¡casi siempre uso estos paquetes!

En cualquier caso, la mejor opción para hacer que se active el tamaño del papel si no queremos tocar nada más es decirle a geometry que debe mirar el tamaño de papel establecido. Para ello tenemos pass que según el manual hace lo siguiente:

Disables all of the geometry options and
calculations except verbose and showframe.
It is order-independent and can be used
for checking out the page layout of the
documentclass, other packages and manual
settings without geometry.

Sigue leyendo

Curso no convencional de LaTeX: ¡finiquitado!

¡Ya está terminado el Curso no convencional de LaTeX! He estado escribiendo desde noviembre, los primeros meses mientras acababa la tesis y luego ya como parada (o para más glamour de año sabático). Ha sido un proceso interesante ir escribiendo mientras la gente leía y tener mi trabajo público según se iba desarrollando. He recibido bastante feedback y ¡todo bueno!

Veamos ahora cuál es el estado del curso:

Sobre el futuro del cursete tengo varias dudas:

  • La fuente es libre, pero ¿debería vender la versión compilada?

  • ¿Lo pongo en Openlibra o un servicio similar?

  • ¿Sería posible fabricar una versión en papel? Me hace ilusión.

Mientas voy dando respuesta a estas preguntas seguiré mejorando el estilo del pdf y corrigiendo errores. Que no os de pena que haya acabado el curso, seguiré escribiendo sobre LaTeX por aquí 🙂

¿Y vosotros? ¿Qué opináis del curso? ¿Y de su futuro?


A veces no oigo punkarrada: