En este tema vamos a tratar las nociones fundamentales de LaTeX, agrupadas en tres categorías: Secuencias de control, texto en el fichero fuente y otras nociones fundamentales. Los dos primeros apartados parten de que en un fichero fuente de LaTeX, tal y como se ha dicho ya varias veces, hay instrucciones de formateo (secuencias de control) y texto.
En el fichero fuente LaTeX diferencia entre lo que es texto y lo que son instrucciones de formateo. A esas instrucciones de formateo se las llama de muchas maneras: comandos, órdenes, macros, instrucciones... Usaré indistintamente unas y otras denominaciones, así como también la expresión "secuencias de control" que es la que usa el autor de TeX para referirse a este contenido de un fichero fuente que no es texto propiamente dicho. Aunque, en general usaré preferentemente los términos "comando", "instrucción" o "secuencia de control" para referirme a las incorporadas con el propio LaTeX o con alguno de sus paquetes de ampliación, reservando (más o menos) el término "macro" para las definidas por el propio usuario.
Una secuencia de control es una instrucción dirigida a LaTeX por la que se le pide que haga algo; ese algo pueden ser cosas muy distintas; por ejemplo:
Las secuencias de control empiezan siempre con el carácter "\" (al que se denomina carácter de escape) y son de dos tipos:
Una palabra de control no puede contener ningún carácter que no sea una letra (en el sentido indicado); y esta es la razón de que no podamos generar comandos en cuyo nombre haya vocales acentuadas o eñes o números, porque para LaTeX todos estos caracteres son, a estos efectos, no letras. De hecho cuando LaTeX lee el carácter de escape ("\") comprueba si el siguiente carácter es una letra. Si no lo es, considera que se trata de un símbolo de control, los cuales tienen siempre exactamente un carácter de longitud. Por el contrario si el carácter inmediatamente posterior a "\" es una letra, LaTeX seguirá leyendo hasta que encuentre la primera no letra y cuando lo haga considerará terminado el nombre del comando.
Esto tiene como excepción ciertos comandos cuyo nombre acaba por un asterisco. Estos comandos siempre tienen otra versión del mismo nombre, y sin el asterisco, que funciona de modo ligeramente diferente. De momento olvidemos esas excepciones y asumamos, para lo que sigue, que en el nombre de un comando que no sea un símbolo de control, no puede haber nada más que letras mayúsculas o minúsculas.
El carácter con el que termina una palabra de control puede ser:
En el primer caso LaTeX asume que el espacio en blanco se introdujo para indicar que ahí acababa el nombre del comando, pero que no es un espacio en blanco real que haya que imprimir en el documento final. Lo cual tiene a su vez un efecto colateral que también es fuente de errores para los aprendices de LaTeX: si el espacio en blanco posterior a una palabra de control no se imprime, lo normal, salvo que hagamos algo para evitarlo, será que en el documento final el texto generado por el comando aparezca unido a la siguiente palabra.
Por ejemplo: imaginemos las siguientes líneas en un fichero fuente:
l\ae titia es una palabra latina. Para escribirla con \LaTeX hay que usar el comando \textbackslash ae.
En este ejemplo hay tres comandos. El primero \ae, genera en LaTeX el carácter æ;, el segundo, \LaTeX, ya lo vimos en el tema anterior: genera el logotipo de LaTeX adecuadamente formateada. El tercero, \textbackslash genera en el documento final una barra invertida.
Pues bien, tras compilar este texto obtendríamos el siguiente resultado:
lætitia es una palabra latina. Para escribirla con LaTeXhay que usar la secuencia de control \ae
He señalado con negritas los lugares donde estaban los comandos. Obsérvese que los espacios en blanco que había detrás de cada una de los comandos han desaparecido. Y que si bien en el primer y tercer caso ello es lo que se esperaba, y no hay ningún error, en el segundo caso su desaparición provoca que el texto "LaTeX" aparezca pegado a la siguiente palabra.
Para evitar este error de nada serviría escribir dos espacios en blanco en lugar de uno, porque LaTeX trata a todos los espacios en blanco consecutivos como uno sólo. Por ello, para asegurarnos de que el espacio en blanco se imprime, deberíamos, bien indicárselo expresamente a LaTeX (mediante el símbolo de control "\ " –el carácter de escape seguido de un espacio en blanco–), bien asegurarnos de que el nombre de la macro termine por una no letra distinta de un espacio en blanco. Por ejemplo las siguientes tres frases se formatearán correctamente:
\LaTeX\ fue originariamente diseñado... \LaTeX{} es un gran sistema de generación de documentos. \LaTeX, que está basado en \TeX...
En la primera hemos indicado expresamente que el espacio en blanco hay que imprimirlo. En la segunda hemos añadido un grupo vacío tras el nombre del comando. Como el grupo está vacío no se imprime nada, pero conseguimos que el compilador sepa, al leer el carácter "{" que ya se ha terminado el nombre del comando. En el tercer caso hemos procurado redactar la frase de tal modo que tras el comando aparezca una no letra que no consista en un espacio en blanco.
Algunos comandos pueden recibir argumentos. Si el argumento es opcional (puede o no incluirse) cuando queramos incluirlo debemos indicarlo entre corchetes. Si el argumento es obligatorio, para incluirlo debemos hacerlo entre llaves; si se trata de un comando que admite ambos tipos de argumentos y queremos incluirlos los dos, hay que escribir siempre el argumento opcional (entre corchetes) antes que el obligatorio (entre llaves).
Como regla los comandos de LaTeX pueden recibir hasta 9 argumentos, de los que sólo el primero puede ser opcional. Por lo tanto el formato general de una palabra de control que admita argumentos es el siguiente:
\NombreMacro[Arg. opcional]{Arg. obl. 1°}{...}{Arg. Obl. 9°}
Por ejemplo, el comando "\emph" enfatiza (pone en cursiva) el texto que reciba como argumento. De modo que para conseguir un texto en cursiva habría que escribir en el documento fuente:
\emph{Este texto va en cursiva}
El comando "\newcommand" nos permite crear nuestras propias macros. Su formato es:
\newcommand{\NombreMacro}[Num Args][Valor arg. 1]{Definición}
Donde:
Una forma sencilla de usar las macros, que no exige ser un usuario avanzado de LaTeX es el de usarlas para generar abreviaturas. Por ejemplo: si yo tuviera que escribir un manual de Derecho civil en el que continuamente hubiera que citar la frase Código civil francés de 1804 (Código Napoleón), inspirador del código español de 1889, podría simplificar la escritura escribiendo en el preámbulo del documento:
\newcommand{\ccfr}{Código civil francés de 1804 (Código Napoleón), inspirador del código español de 1889}
El efecto sería que yo debería escribir exclusivamente "\ccfr" cada vez que quisiera obtener la frase en cuestión.
Pero las macros en función de abreviaturas no sólo sirven para simplificar la escritura del fichero fuente. También son muy útiles para asegurarse de que cierta palabra o texto difícil, siempre se escribe igual. Por ejemplo si en nuestro documento tuviéramos que referirnos continuamente a la secuencia binaria "001101001111001", en la que tan fácil es equivocarse al escribirla, podríamos poner en el preámbulo del documento:
\newcommand{\NumBin}{001101001111001}
de modo que, en lugar de escribir decenas o cientos de veces esa secuencia, asumiendo en cada ocasión el riesgo de equivocarse y cambiar un "0" por un "1" sólo habría que escribirla una vez, y cada vez que quisiéramos usar esa secuencia en el documento bastaría con escribir "\NumBin".
Si \newcommand permite definir nuevos comandos, \renewcommand permite redefinir un comando previamente definido. Su formato es similar al de \newcommand:
\renewcommand{\NombreMacro}[Num Args][Valor Arg. 1]{Definición}
con la única diferencia de que si en \newcommand se produce un error en el caso de que elijamos como nombre del nuevo comando uno ya definido, en \renewcommand ocurre exactamente lo contrario: el error se generará si redefinimos un comando que no había sido previamente definido.
Con carácter general no es buena idea redefinir comandos de LaTeX, al menos hasta que sepamos algo más de LaTeX.
En principio todo lo que no sean instrucciones (precedidas por el carácter de escape) o comentarios (indicados por el carácter "%") se considera texto. Hay, no obstante, algunos caracteres que son objeto de un tratamiento especial por parte de LaTeX.
Los llamados caracteres reservados son aquellos que LaTeX interpreta como no texto y que por lo tanto no pueden usarse directamente en el fichero fuente para representar texto. Estos caracteres son:
\ % { } ~ $ # & ^ _
Aunque ya hemos visto el significado de alguno de ellos vamos a explicarlos todos:
Y ¿qué hacer si queremos imprimir en nuestro documento alguno de los caracteres reservados?: Muy fácil: basta con escribir el carácter de escape (\) antes del carácter reservado y así "\$" imprimirá en nuestro documento el símbolo del dólar, mientras que "\%" imprimirá el del tanto por ciento. No obstante hay que hacer las siguientes observaciones:
En LaTeX los espacios en blanco, los tabuladores y los saltos de línea (el resultado de pulsar la tecla RETURN o INTRO) en el documento fuente se consideran caracteres equivalentes. Hayamos escrito un espacio en blanco, un salto de tabulador o un salto de línea, en el documento final se insertará, en los tres casos, un espacio en blanco.
En relación con los espacios en blanco hay una regla muy importante: da igual cuantos espacios en blanco (o caracteres equivalentes) consecutivos escribamos en nuestro documento. LaTeX los tratará a todos como si hubiera uno sólo. De modo que si, por ejemplo, escribimos:
En un lugar de la Mancha, de cuyo nombre no me quiero acordar...
obtendremos exactamente el mismo resultado que si hubiéramos escrito:
En un lugar de la Mancha, de cuyo nombre no me quiero acordar...
Para indicar un espacio en blanco de inserción obligatoria en la salida final, debemos escribir, antes del espacio en blanco obligatorio el carácter de escape ("\"). De modo que
En un lugar de la Mancha, \ \ de cuyo nombre no me quiero acordar
Incluirá detrás de la coma, tres espacios en blanco. Sin embargo hacer esto casi nunca es una buena idea. Hay en LaTeX otros procedimientos más eficaces para conseguir que una palabra se aleje de la que le precede (véase la lección 6ª).
El que el salto de línea se considere equivalente a los espacios en blanco significa que a LaTeX le da igual que al final de las líneas pulsemos o no la tecla RETURN (o INTRO, o RETORNO, o ENTRAR, que de todos esos modos se la conoce).
Y si la tecla RETURN no indica un salto de párrafo ¿Cómo podemos insertar un salto de párrafo? Para ello hay dos procedimientos:
Lo más normal es insertar una línea totalmente en blanco. Una o varias, da igual, porque en materia de saltos de párrafo LaTeX actúa igual que en materia de espacios en blanco: le es absolutamente indiferente cuantas líneas en blanco consecutivas escribamos: Se insertará sólo un salto de párrafo.
En los teclados suele haber un sólo carácter para representar las dobles comillas: "
. En los libros, sin embargo, es habitual que se distinga entre dobles comillas de apertura y dobles comillas de cierre. También se distingue entre dobles comillas altas y dobles comillas bajas, también llamadas "comillas tipográficas" que se representan como "‹‹" y "››".
En LaTeX para indicar las dobles comillas se usan:
< <
(sólo con la opción spanish de babel).> >
(sólo con la opción spanish de babel).NOTA En los dos párrafos anteriores, para escribir < < y > > se ha insertado un espacio en blanco entre los dos caracteres consecutivos. En LaTeX NO HAY QUE HACERLO, aquí lo hemos hecho porque este texto está escrito en DokuWiki, lenguaje que cuando ve duplicado el carácter < automáticamente lo sustituye por ‹‹, y cuando ve duplicado > lo sustituye con ››.
Y, al mismo tiempo, no se recomienda nunca usar directamente en el fichero fuente el carácter de las dobles comillas ("), porque varios paquetes de LaTeX lo asocian a ciertas macros, y ello puede hacer que se produzcan resultados inesperados. En particular la opción "spanish" de "babel" así lo hace: usa el carácter " (que se supone que nunca es preciso escribir en LaTeX) para varios atajos de teclado. Un atajo de teclado significa asociar una secuencia de letras que sea fácil de escribir a un comando. Por ejemplo spanish asocia la combinación "c con el comando ‹‹\c c››.
Por otra parte, si nuestro teclado es capaz de generar directamente las comillas tipográficas (el mío lo hace) podemos usar ese carácter, en lugar de < <
y > >
, siempre y cuando carguemos el paquete inputenc con la codificación adecuada. Yo casi diría que es preferible, porque babel define < <
no sólo como un equivalente al carácter "‹‹" sino también como el inicio de un grupo... de modo que si en el documento abrimos comillas mediante < <
y luego olvidamos cerrarlas, al compilar se generará un error.
Los teclados de ordenador sólo tienen un carácter para generar el guión: "-", sin embargo en los libros se usan hasta cuatro tipos de guiones:
Pues bien: En LaTeX se distinguen estos cuatro usos y así:
En realidad decir que los puntos son caracteres especiales de LaTeX es hilar muy fino. Pero realmente lo son, en el sentido de que LaTeX les da un tratamiento especial.
LaTeX asocia ciertos caracteres a la terminación de frases: el punto, por supuesto, pero también "?", o "!". De acuerdo con la tradición tipográfica anglosajona (no sé si también la española) el espacio en blanco después de una frase debe ser algo mayor que el espacio en blanco normal entre palabras, y LaTeX actúa en consecuencia: al encontrar un punto (o cualquier carácter terminador de frases) añade algo de espacio en blanco. El problema está en que hay puntos que no terminan frases. Por ejemplo algunas abreviaturas usuales como, por ejemplo "ej." para ejemplo, o etc. para etcétera. En estos casos podemos advertir expresemante a LaTeX de que no debe añadir el espacio extra, simplemente insertando, en lugar del espacio en blanco normal tras el punto, un espacio en blanco forzado (\ seguido de un espacio en blanco). Por ejemplo:
... y así por ej.\ podríamos...
Obsérvese como tras el punto que no acaba frase, en lugar de un espacio en blanco normal hemos añadido un espacio en blanco forzado... Esto funciona porque LaTeX cuando inserta espacios en blanco forzados siempre inserta la cantidad de espacio en blanco que en el párrafo en cuestión se esté usando para separar palabras.
En el caso de abreviaturas no es preciso hacer lo anterior, si van escritas en mayúsculas, porque cuando LaTeX encuentra una letra mayúscula seguida de un punto, asume que se trata de una abreviatura y que el punto en cuestión no termina ninguna frase. Por ello cuando no sea así, si queremos que se añada el espacio extra, debemos indicarlo mediante el símbolo de control "\@" ubicado justo antes del punto en cuestión.
Lo aquí dicho se aplica también al resto de los signos de puntuación que LaTeX interpreta como terminadores de frases: ?, ! y :.
Un signo de puntuación especial es el de los puntos suspensivos. En la tradición tipográfica anglosajona no se suelen imprimir como tres puntos consecutivos, sino que se acostumbra a reducir el espacio entre ellos, al tiempo que se aumenta el espacio entre el último punto y la siguiente palabra.
En LaTeX se incluyen tres posibilidades de escribir los puntos suspensivos: "...", "\..." y "\dots". La opción "spanish" del paquete "babel" hace que usando los dos primeros procedimientos, los puntos suspensivos se impriman de acuerdo con la tradición española. Usando el comando \dots, por el contrario, siempre se imprimirán según la tradición anglosajona.
En LaTeX un entorno es un bloque más o menos amplio de texto, al que se aplican ciertas características globales de formato, normalmente por tratarse de un texto que cumple cierta función dentro del documento; por ejemplo: por ser una cita literal, o un poema, o una ecuación...
Todo lo que se puede conseguir con un entorno se puede también conseguir con un comando; y de hecho hay varias ocasiones en que LaTeX prevé, para una misma misión, un comando o un entorno. Las diferencias básicas entre entornos y comandos, además de en la sintaxis, se encuentran en para qué se suelen usar unos y otros:
Desde el punto de vista de la sintaxis, los entornos empiezan siempre con la orden "\begin" seguida del nombre del entorno (entre llaves) y acaban con la orden "\end" seguida del nombre del entorno (también entre llaves). Si el entorno tiene argumentos (opcionales u obligatorios) se introducen igual que en los comandos. Por lo tanto el formato general de un entorno es:
\begin{NombreEntorno}[Arg. opcional]{Arg obligatorio} ... ...contenido del entorno ... \end{NombreEntorno}
Aunque hay que decir que en los entornos se suelen usar los argumentos mucho menos que en los comandos.
En LaTeX se utilizan los entornos para:
Los entornos se pueden, por otra parte, anidar, sin más límite que la memoria del ordenador. Pero es importante, cuando se anidan entornos, que el orden de cierre de los mismos sea el adecuado; o en otro caso se generará un error. Por ejemplo:
\begin{entornoA} ... \begin{entornoB} ... \end{entornoA} ... \end{entornoB}
Esta secuencia de apertura y cierre de entornos generaría un error; porque si el entornoB se abrió dentro del entornoA, debe cerrarse antes de cerrar el entornoA.
Asimismo se producirá un error si algún entorno no llega a cerrarse.
El orden de cierre de los entornos anidados, así como determinar si alguno de ellos realmente se ha cerrado o no, a veces es difícil; sobre todo cuando se han anidados entornos iguales. Por ejemplo: en las enumeraciones anidadas, como la orden de apertura y cierre del entorno es siempre la misma, el documento fuente puede llegar a ser confuso.
Por ejemplo: para conseguir una lista del tipo:
1. ... 1.1. .... 1.2. ... a. ... b. ... 1.3. ... 2...
deberíamos escribir:
\begin {enumerate} \item ... \begin{enumerate} \item ... \item ... \begin{enumerate} \item \item \end{enumerate} \item ... \end{enumerate} \item ... \end{enumerate}
En el tema 4° se explica este entorno, así como la manera de conseguir que cada enumeración se haga con números de distinto tipo. Lo que ahora me interesa destacar es que en el fichero fuente, las líneas de apertura y cierre de los entornos anidados son bastante parecidas, lo que, si se nos olvida alguna de ellas, puede hacer bastante difícil localizar el punto exacto donde debimos introducir la línea omitida.
Para evitar este error se recomienda que siempre que se vaya a usar un entorno se escriba la línea de cierre inmediatamente después de la línea de apertura, y luego se inserte entre ambas el contenido del entorno. También es buena idea en el documento fuente aplicar un distinto sangrado a cada nivel de anidamiento de entornos (tal y como hemos hecho en el ejemplo anterior), para que visualmente sea más fácil detectar donde empieza y donde acaba cada uno de ellos.
NOTA Respecto a los sangrados que apliquemos en el fichero fuente, téngase en cuenta que el hecho de que LaTeX equipare los saltos de línea a espacios en blanco, y trate todos los espacios en blanco consecutivos como si hubiera uno sólo, facilita que en el fichero fuente incluyamos los sangrados que queramos para mejorar la legibilidad del fichero; pues en el documento final formateado, los sangrados del fichero fuente serán totalmente ignorados. Esto nos ayuda a escribir ficheros fuente más claros.
LaTeX considera que un entorno es un grupo y, por lo tanto, toda característica de formato activada dentro de él, así como todo valor indicado en su interior, desaparece cuando se sale del entorno. Es decir que si dentro de un entorno activamos, por ejemplo, la letra negrita, al salir del entorno no tendremos que desactivarla expresamente, ya que fuera del entorno no se considerará que la negrita haya sido activada.
Por lo demás, al igual que ocurre con las macros, los entornos pueden recibir argumentos (aunque es bastante menos habitual que ello ocurra) opcionales y obligatorios. Asimismo, mediante la instrucción "\newenvironment" podemos crear nuestros propios entornos. El formato de esta instrucción es:
\newenvironment{Nombre}[Num Args.][Arg. 1]{Al entrar}{Al salir}
donde Nombre es el nombre del nuevo entorno (que no puede coincidir con el de ningún entorno ya definido, mientras que Num Args. y Arg. 1 funcionan igual que en la definición de las macros. Pero a diferencia de las macros, donde debemos escribir una sola definición, en los entornos se escriben dos definiciones:
Asimismo podemos redefinir un entorno previamente existente mediante
\renewenvironment{entorno}[Num Args.][Arg.1]{Al entrar}{Al salir}
En LaTeX un grupo es un bloque del documento que es tratado como unidad para alguna finalidad, o, si se prefiere, un grupo es una unidad de trabajo, en la que se pueden realizar múltiples asignaciones que serán "olvidadas" al salir.
En todo grupo hay un punto de inicio y un punto de finalización. Se considera que el grupo está compuesto por todo lo que haya entre ambos puntos. Por supuesto dentro de un grupo puede haber otros grupos. En LaTeX el anidamiento de grupos sólo tiene como límite la memoria del ordenador. Es muy importante no obstante, en caso de grupos anidados que se tenga claro que el orden en el que los grupos se deben cerrar es el inverso a aquel en el que se abrieron, es decir: abiertos, por ejemplo, cuatro grupos, el primer carácter de cierre de grupo se asignará al último grupo que se abrió.
Los caracteres generales para indicar el inicio y el fin de un grupo son "{" (para indicar el inicio) y "}" (para indicar el fin). Siempre que queramos indicar un grupo conviene escribir simultáneamente los caracteres de apertura y cierre, porque un grupo sin cerrar provoca en LaTeX un error que a veces, cuando hay un alto nivel de anidamiento, es difícil de localizar.
Como he dicho antes, cualquier alteración o cambio en el valor de variables o en los formatos activos que tenga lugar dentro de un grupo, se pierde cuando el grupo finalice.
Esta característica se suele usar para declarar bloques de texto que se verán afectados por cierta instrucción. Por ejemplo: el comando \bfseries funciona como una especie de conmutador: activa la letra negrita, que quedará activada hasta que se le indique lo contrario (mediante el comando \mdseries), pero si queremos ahorrarnos la necesidad de desactivar expresamente al primero, basta con generar un grupo con el texto que queremos en negrita y escribir dentro de él el comando en cuestión, tal y como se ve en el próximo ejemplo:
{\bfseries esto va en negrita} y esto no \bfseries vuelve la negrita \mdseries y de nuevo se desactiva
En la primera línea hemos delimitado el campo de acción de "\bfseries" con un grupo, y por lo tanto no es preciso desactivarlo expresamente. En la segunda línea no hay grupo que delimite a \bfseries y, por lo tanto, es preciso desactivar su acción expresamente con \mdseries.
Este comportamiento de los grupos funciona no sólo respecto a los formatos activos, sino también en materia de valores y medidas. Por ejemplo: si en el interior de un grupo alteramos el interlineado, o los márgenes, o el espacio entre párrafos, cuando salgamos del grupo se restaurarán los valores previos.
Otra utilidad de los grupos es la de incluir varios caracteres donde LaTeX espera sólo un carácter. Por ejemplo ya hemos mencionado que el carácter reservado "^" se usa como indicador de superíndice en el modo matemático y se aplica al carácter que se encuentra a su derecha. Si queremos que se aplique a varios caracteres, hay que agruparlos. Así en el siguiente ejemplo:
$3^54$ $3^{54}$
en la primera línea obtendremos 354, y en la segunda 354. Obsérvese, por otra parte, como en ambas líneas, antes de usar el carácter reservado "^" hemos activado el modo matemático.
Asimismo en secciones anteriores hemos visto la utilidad de los grupos vacíos. Un grupo vacío puede servir, por ejemplo, para terminar el nombre de un comando, de tal modo que el espacio en blanco posterior se imprima. También podemos usar un grupo vacío para evitar que LaTeX considere que dos caracteres son consecutivos. Por ejemplo: si quisiéramos escribir dos guiones consecutivos, y no quisiéramos que LaTeX los convierta en un guión medio (que es lo que normalmente haría) deberíamos insertar entre ambos un grupo vacío, escribiendo "-{}-". Que es lo mismo que antes hicimos para conseguir imprimir un acento circunflejo aislado: "\^{}", porque si escribiéramos sólo "\^" ya vimos que LaTeX interpretaría que queremos poner un acento circunflejo sobre el carácter que se encuentre a la derecha.
Aunque los indicadores habituales de apertura y cierre de los grupos son "{" y "}", hay otros:
Es importante tener en cuenta que cada procedimiento de apertura de grupo se asocia con un procedimiento de cierre; de manera que un grupo abierto con "{" sólo puede cerrarse con "}". Y por lo mismo: un grupo abierto con "\bgroup" sólo podrá cerrarse con "\egroup".
TeX fue diseñado originariamente para escribir matemáticas; y es en este campo en el que empezó a destacar. Por ello no es de extrañar que en él (y en LaTeX) exista lo que se llama un modo matemático, en el cual el contenido del fichero fuente se interpreta como contenido matemático, lo que implica que será formateado como tal, se usará una fuente distinta y quedará habilitado el uso de ciertos comandos y caracteres reservados que no están habilitados en el modo normal.
Hay varios procedimientos para activar el modo matemático: En particular hay varios entornos que lo activan de los que los entornos básicos son "math" y "displaymath". El primero activa el que podríamos llamar "modo matemático en línea"; en él la expresión o fórmula matemática se imprimirá en la misma línea de texto en la que se encuentre. El segundo, por el contrario, activa el llamado "modo matemático destacado" que hace que la expresión o fórmula matemática se imprima centrada en una sola línea, separada verticalmente del párrafo anterior y del posterior por un espacio ligeramente superior al habitual, para que la fórmula quede destacada visualmente en el texto.
Pero como a fin de cuentas se asume que con LaTeX escribiremos muchas matemáticas, se proporciona un procedimiento más simple para activar y desactivar los modos matemáticos en línea y destacado: el conmutador del modo matemático que es el carácter "$". Este carácter activa el modo matemático (si estaba desactivado) o lo desactiva (si estaba activado).
En LaTeX, por lo tanto es corriente que las expresiones matemáticas se incluyan entre dos signos de dolar. Por ejemplo:
Siendo cierto que $X_n = X_k$ si y solo si $Y_n = Y_k$
hemos insertado dos fragmentos matemáticos en la misma línea.
El conmutador de modo matemático se puede usar de las siguientes dos maneras:
$ expresión matemática $ $$ expresión matemática $$
En el primer caso, que equivale al entorno "math", se activa el "modo matemático en línea": la expresión matemática se insertará en el lugar de la línea que corresponda. Por el contrario, cuando duplicamos el conmutador, se activa el "modo matemático destacado": la expresión matemática se destaca en la página de la manera antes explicada. Esto es lo mismo que se obtiene con el entorno "displaymath".
Otros modos de activar y desactivar el modo matemático son "\(" y "\[". El primero activa el modo matemático en línea (equivale a "$") y el segundo activa el modo matemático resaltado (equivale a "$$"). Para desactivar el modo matemático, entonces, hay que usar los caracteres \) y \].
A modo de resumen la siguiente tabla indica como activar y desactivar los dos modos matemáticos: el modo en línea y el modo resaltado:
Tipo de modo | Se activa con | y se desactiva con |
---|---|---|
en línea | \begin{math} | \end{math} |
en línea | $ | $ |
en línea | \( | \) |
destacado | \begin{displaymath} | \end{displaymath} |
destacado | $$ | $$ |
destacado | \[ | \] |
De la anterior tabla es importante retener que al modo matemático le ocurre como a los grupos: cada forma de activarlo tiene asociada su forma de desactivación, y si no se hace así se generará un error. Es decir: si hemos activado el modo matemático con "$" hay que desactivarlo también con "$", pero si lo hemos activado con "$$", habrá que desactivarlo con "$$". Asimismo un modo matemático activado con el entorno "math" sólo puede desactivarse cerrando el mencionado entorno.
En fin: para terminar diré que aunque el conmutador matemático original es el signo del dólar, en general se considera preferible activar el modo matemático con "\(" o "\[", porque estos procedimientos tienen la ventaja de que en fórmulas medianamente complejas dejan más claro, en el fichero fuente, donde empieza y donde acaba la fórmula, ya que cuando se usa el dólar el signo de apertura y cierre del modo matemático es el mismo, lo que puede a veces resultar confuso.
Muchos parámetros de las páginas se expresan como una longitud. Asimismo son varios los comandos que reciben como argumento alguna longitud.
En LaTeX las longitudes se expresan siempre igual:
Valor UnidadCuenta
El valor es un número entero o decimal y la unidad de cuenta se refiere a la unidad en la que está representada la longitud. El espacio en blanco entre el valor y la unidad suele omitirse.
LaTeX admite las siguientes unidades de medida de longitudes, y para cada una de ellas usa una secuencia identificativa que consta de dos letras. De mayor a menor, las medidas admisibles son las siguientes:
Junto con las anteriores unidades, que son absolutas LaTeX también admite dos unidades de medida relativas, dependientes de la concreta fuente que se esté utilizando en cada instante. Se trata de:
Siempre que en LaTeX haya que indicar una medida debemos especificar la unidad. Da igual la que elijamos: LaTeX se ocupa de las conversiones. Pero es importante tener claro que la unidad siempre hay que especificarla, aunque el valor sea 0 (caso en el que, en teoría, la unidad daría lo mismo).
Las longitudes se almacenan en variables internas de LaTeX. En principio para dar valor a una longitud basta con asignárselo escribiendo el nombre de la variable el signo "=" el nuevo valor y la unidad de medida. Por ejemplo:
\parindent=1.23cm
fijará en 1,23 centímetros el valor de \parindent, el cual controla la cantidad de indentación a la izquierda que debe recibir la primera línea de cada párrafo.
LaTeX proporciona, no obstante, dos comandos para fijar la longitud de una variable, se trata de \setlength{variable}{Valor} y \addtolength{variable}{Cantidad}.
\setlength fija en términos absolutos el valor de una variable de longitud. Por ejemplo: si queremos que el texto de nuestras páginas tenga una anchura exacta de 15 cm. podríamos escribir:
\setlength{\textwidth}{15cm}
lo que sería exactamente igual a haber escrito
\textwidth=15cm
La principal utilidad de \setlength está en la fijación de valores para las variables elásticas (véase más adelante).
Mucho más útil para el novato es el comando \addtolength, que nos permite alterar una longitud cuyo valor exacto no conocemos, añadiéndole o quitándole la cantidad que especifiquemos. Por ejemplo, si nos parece que los márgenes predeterminados por LaTeX son muy amplios, podríamos reducirlos añadiendo 1 centímetro a la variable que controla la anchura del texto, sin necesidad de saber cual es su longitud exacta. Para ello tendríamos que escribir:
\addtolength{\textwidht}{1cm}
\addtolength añade a la longitud especificada como primer argumento el valor especificado como segundo argumento. Si en el segundo argumento se indica una cantidad negativa el resultado será que esa cantidad se restará del valor previo de la longitud.
En LaTeX algunas longitudes son elásticas, ello significa que admiten un valor natural u óptimo, pero pueden aumentar o reducirse. Por ejemplo: el espacio entre palabras en una línea: en principio hay un valor predeterminado, pero según las necesidades de composición del párrafo, habrá que aumentar o reducir ese valor para conseguir que todas las líneas del párrafo tengan la misma longitud.
Este tipo de longitudes elásticas se definen por tres valores: su valor óptimo o normal, la cantidad en la que pueden aumentar, y la cantidad en la que pueden reducirse. Y esto se puede fijar mediante el comando \setlength. Por ejemplo:
\setlength{\parskip}{1ex plus0.5ex minus 0.2ex}
fijará el valor de parskip como 1 ex, pero advirtiendo que puede aumentar hasta 1,5 ex, o reducirse hasta 0,8 ex.
Otra variable interna manejada por LaTeX son los contadores: en ellos se almacena un número entero que es incrementado cuando se produce cierto evento; como, por ejemplo, el contador "page" que se incrementa cada vez que se inserta un salto de página, o el contador "footnote" que se incrementa cuando se inserta una nota a pie de página. Hay asimismo eventos que provocan que un contador se reinicie. Por ejemplo, cada vez que cambiamos de capítulo, se reinicia el contador de secciones. Cada vez que cambiamos de sección, se reinicia el contador de subsecciones... Y por esto la primera sección de cada capítulo es siempre la sección "1", porque al empezar un capítulo nuevo se reinicia el contador de secciones, olvidando su valor previo.
Para alterar el valor de un contador se dispone de dos comandos:
\setcounter{Valor} \addtocounter{Valor}
El primero establece el valor en términos absolutos. Por ejemplo, si queremos que en nuestro documento los capítulos empiecen a partir del 101, deberíamos escribir, antes del primer capítulo:
\setcounter{chapter}{100}
Obsérvese que lo ponemos en 100, y no en 101, porque el primer comando \chapter empezará por incrementar el valor del contador.
\addtocounter añade al contador indicado la cantidad especificada que, si es positiva, incrementará el contador, y si es negativa se restará del valor previo. Por ejemplo: \addtocounter{page}{1} hará que la numeración de páginas de nuestro documento se salte una página.
Para conocer el valor de un contador se dispone del comando \value{contador}. Pero el resultado de este comando no se puede imprimir directamente en el documento, y sólo se usa para programación de macros.
El comando que imprime el valor de cada contador se denomina igual que el propio contador que la sílaba "the" delante, y así, por ejemplo, el comando que imprime el contador "page" se llama "thepage", y el que imprime el contador "subsubsection" se denomina "thesubsubsection".
Redefiniendo estos comandos podemos modificar el formato en el que se imprime un contador concreto. Así, por ejemplo, si queremos que en nuestro documento las páginas se impriman en negrita, deberíamos escribir en el preámbulo:
\renewcommand{\thepage}{\textbf{\arabic{page}}}
Obsérvese bien la instrucción anterior, porque en ella hemos introducido un comando hasta ahora no explicado: \arabic. Este comando se usa con contadores e indica que hay que imprimirlos como números arábigos. Por lo demás el resto de la instrucción es claro: empezamos con \renewcommand y luego indicamos que el comando a redefinir es \thepage. Tras ello escribimos la nueva definición en la que empezamos diciendo que queremos escribir en negrita, y lo que se escribirá en negrita es precisamente el valor en números arábigos del contador "page".
De hecho al redefinir el comando de impresión de un contador siempre hay que indicar si queremos que el valor del contador se imprima como números arábigos (\arabic), alfabéticos en mayúsculas o en minúsculas (\Alpha y \alpha, respectivamente) en números romanos (\roman o \Roman según los queramos en minúsculas o en mayúsculas) o como símbolos (\fnsymbol).
Imprimir un contador como símbolos responde a una tradición tipográfica anglosajona que, en documentos con pocas notas a pie de página, en lugar de con números, numeraba las notas con ciertos símbolos y así la primera se marcaba como un asterisco, la segunda con , la tercera con , etc.
En España nunca ha existido esa tradición, aunque sí es cierto que en determinados impresos para las notas a pie de página en lugar de números se usan asteriscos, de manera que la primera recibe un asterisco, la segunda dos asteriscos, etc. Por esta razón cuando está activa la opción "spanish" de "babel" el comando \fnsymbol produce que el valor del contador se represente exclusivamente con asteriscos. El problema está en que como una larga ristra de asteriscos es muy difícil de leer, "spanish" limita el valor de los contadores que se deban representar con \fnsymbol hasta un máximo de 6.
De los temas tratados en esta lección hay varios aspectos que no se han tratado en absoluto, o lo han sido de modo insuficiente. Entre otros:
Sobre éstas y otras cuestiones podemos profundizar usando los procedimientos y fuentes de conocimiento que se mencionaron en la lección 2ª. Y al igual que entonces dije: ¡que nadie se desanime! no es preciso saber todo eso para escribir magníficos documentos perfectamente estructurados y con una calidad tipográfica comparable a la de las mejores imprentas del planeta.