viernes, 9 de marzo de 2012

Caracteres reservados de LaTeX

Así como los lenguajes de programación LaTeX posee un conjunto de símbolos que usa como instrucciones para procesar el texto, usualmente las instrucciones se reconocen con facilidad, puesto que la mayoría comienza con el carácter \.

En embargo también existen caracteres a los cuales se les da un significado especifico, esto no parecería demasiado problema, hasta que se esta compilando un documento y aparecen errores extraños, los cuales terminan siendo provocados por un solo carácter, el cual el compilador intenta interpretar.

Antes de proceder tal vez sea corrector explicar que significa "escapar" un carácter, en este contexto "escapar" un carácter es el modo de indicarle a LaTeX  que deseamos mostrar ese carácter y que no debe de interpretarlo como una instrucción.

Dado que los mensajes de error suelen ser un poco vagos al respecto, y que es muy fácil olvidar "escapar" el carácter se presentaran aquí no solo una lista de caracteres reservados, si no ademas el como "escaparlos" y que mensaje de error es mostrado si no se hace esto.

La lista de caracteres reservados puede verse al compilar el siguiente código, solo cópielo a un archivo y compilelo.

Codigo Ejemplo


\documentclass{article}
% Si esta compilando en un entorno Windows remplaze la siguiente
% linea con \usepackage[latin1]{inputenc}
\usepackage[utf8]{inputenc}


\begin{document}


El codigo de este documento muestra como mostrar los caracteres reservados en \LaTeX


\begin{itemize}
\item \#
\item \$
\item \%
\item \^{}
\item \_
\item \&
\item \{
\item \}
\item \textasciitilde
\item \textbackslash

\item $<$ $>$
\item $[$ $]$

\end{itemize}


\end{document}


Este código, ya compilado le generara el documento mostrado en la Figura 1

Figura 1: Caracteres reservados.



Como puede observar en la Figura 1,  los caracteres reservados son, sin ningún orden en particular: #, $, %, ^, &, {, }, ~, [, ], <, >, _ y \

Ahora que los conoce, tal vez se pregunte ¿Como muestro esos caracteres en un documento?, después de todo el símbolo de porcentaje, el de dinero, el ampersand, los dignos de mayor que y menor que y la diagonal inversa son caracteres que aparecen de manera regular en varios tipos de documentos, para esto a continuación se presenta no solo como "escapar" esos caracteres, algo que seguro ya abra intuido de ver el código ejemplo, si no ademas que error marca el compilador si los escribe directamente, esto ultimo tal vez varié un poco dependiendo del compilador, para este ejemplo se esta usando el entorno LaTeX Tex Live.


Carácter #
Para escapar el numeral, usualmente conocido como "gato", basta con colocar una diagonal inversa antes del símbolo, de esta manera \#.

En caso que halla olvidado hacerlo el compilador le regresara un mensaje de error similar a este:

! You can't use `macro parameter character #' in vertical mode.
<recently read> ##

Carácter $
El símbolo de dinero es un caso curioso en el LaTeX, puesto que es usado para escapar otros signos, como puede ver en el ejemplo, si desea utilizarlo coloque una diagonal inversa antes de el, de modo que quede \$.

Este carácter en particular es utilizado por LaTeX para indicar que partes del texto deben de ser interpretadas como matematicas, por lo que si no es escapado adecuadamente obtendrá un error similar a este:
! LaTeX Error: Command \item invalid in math mode.

Carácter %
El porcentaje es usado por LaTeX para demarcar los comentarios, por lo que el compilador ignorara todo lo que quede de la linea donde se coloque ese carácter, por fortuna si esta usando un entorno con coloreado de sintaxis esto sera fácil de detectar, ya que cambiara el color de texto del resto de la linea.
Para que este carácter sea mostrado basta con colocar la diagonal inversa precediendolo \%

En caso de no estar usando un entorno con coloreado de sintaxis debe de tener mucho cuidado con este carácter, ya que es posible que el documento compile, pero halla lineas que no se muestran

Carácter ^
El acento circunflejo, conocido en mis clases de programación como "gorrito", es usando para indicar superindices, un ejemplo de estos son los números y signos de las potencias, en LaTeX, en el caso que desee usar ese símbolo puede escaparlo con la secuencia \^{} , es muy importante poner las llaves, de lo contrario se generara un error.

El error obtenido si no se escapa el carácter es el siguiente:
! Missing $ inserted.
<inserted text> 

Caracter &
El entorno tabular hace uso extensivo de este simbolo, por lo que si se coloca fuera de este LaTeX indicara un error, para mostrarlo sin generar errores use, de nuevo, la diagonal inversa de este modo \&.

De no hacerlo obtendra un mensaje de error al momento de compilar, el cual sera similar a este
Misplaced alignment tab character &.

Caracteres { }
Si bien el documento de ejemplo los lista separados estos dos caracteres en conjunto cumplen una función muy importante ya que indican los argumentos de las instrucciones por lo que no escaparlos debidamente generara desde mensajes de error a mal interpretaciones del código, para escaparlos use las secuencias \{ y \}.

En el caso de no escaparlos los mensajes de error mostrados seran, respectivamente para { y }
Missing } inserted y  Extra }, or forgotten \endgroup

Carácter ~
La tilde puede mostrarse con el comando \texasciitilde, de intentar colocarla directamente es posible que no se muestre en el documento compilado

Caracteres <, >, [ y ]
Estos cuatro caracteres se escapan de la misma manera, colocandolos entre dos $ de esta manera $<$, $>$, $[$, $]$, en el caso de no hacerlo se mostraran caracteres incorrectos en el documento compilado.

Carácter _
El subindice es usado en LaTeX para indicar que caracteres aparecerán en el subindice (los números similares a las potencias, pero en la parte inferior de una letra o numero), para mostrar este carácter en un documento se usa la diagonal inversa de este modo \_

Mensaje de error si no se escapa adecuadamente
Missing $ inserted.

Carácter \
Habra notado que casi todos los caracteres pueden escaparse con el uso de la diagonal inversa, por lo que no sera ninguna sorpresa que sea un caracter reservado, para mostrarlo use la instrucción \textbackslash


En el caso de no escapar el carácter hay dos posibilidades, si la diagonal inversa esta sola, el LaTeX no la mostrara en el documento compilado, pero si esta junto a otra palabra, ie \palabra, el compilador mandara un error de instrucción no conocida