Minicurso de LaTeX para psicólogos v
El problema en todo proyecto, incluyendo el crear documentación con
LaTeX es organizarse. La organización de la tarea es fundamental
para llevarlo a cabo, sobre todo si es un proyecto o documento
complejo. Por tanto, en el artículo de hoy vamos a ver cómo organizar
nuestro documento para poder dividirlo en partes más asequibles en
lugar de ir poniendo todo en un sólo fichero monolítico. Además,
puesto que veremos la forma de incluir el contenido de un fichero
TeX
en otro, veremos también cómo definir algunos comandos propios
y, en la próxima entrega del minicurso los meteremos en un fichero de
estilo para importarlo como cualquier otro paquete. Lo que hará que
podamos utilizar de forma sencilla nuestros estilos entre los
diferentes documentos que generamos, creándonos plantillas que le
darán a nuestra producción estabilidad y presencia.
El concepto de documento maestro
Una forma de dividir el trabajo es utilizar un documento maestro, entendiendo por tal, el fichero que contiene la cabecera y una serie de instrucciones para importar el resto del contenido desde otros ficheros. Lo habitual es que se utilicen dos tipos de ficheros LaTeX para contener el código que generará nuestro documento:
.tex
: contienen contenido LaTeX que escribimos para generar el documento..sty
: contienen todas las definiciones o comandos que le proporcionan estilo a nuestro documento.
Lo más normal en proyectos grandes, como libros, tesis doctorales,
trabajos de fin de grado, etc. La forma más habitual de hacer una
importación de contenido LaTeX es utilizar el comando \input{}
.
Dicho comando recibe como parámetro el nombre, sin la extensión, de un
fichero LaTeX. Las llamadas a input
pueden incluir contenido que a
su vez llame a input
para añadir otro contenido. Para verlo de una
forma más visual he creado tres ficheros .tex
con el siguiente
contenido:
- El fichero
aa.tex
: - El fichero
bb.tex
: - El fichero
cc.tex
:
Como vemos, el fichero aa.tex
incluye a bb.tex
y este último
incluye el siguiente cc.tex
. Después, basta con importar el primero
en nuestro fichero de ejemplo:
El resultado es el siguiente:

En lugar de trabajar con unas simples listas, podríamos haber
utilizado el comando \input
para importar apartados completos del
documento general: capítulos, secciones, etc. Mover nuestro contenido
de un lugar a otro será tan fácil como mover la instrucción de
importación a posiciones anteriores o posteriores.
Básicamente, en eso consiste el concepto de documento maestro. Es tan solo un documento donde se especifican las opciones y estilos, manteniendo el contenido independiente del resultado final. De esta forma, cualquier cambio en el estilo de algún tipo de párrafo se propaga automáticamente a lo largo del texto dándole coherencia al resultado final.
Por ejemplo:
En el código anterior podemos observar la estructura de un documento maestro. Básicamente es una cabecera que define estilos que se complementa con una lista de importaciones de contenido.
Crear nuevos comandos y entornos
En ocasiones los comandos que nos proporciona LaTeX se nos quedan cortos o no funcionan exactamente como queremos, para esto viene bien tener la capacidad de crear un comando nuevo o modificar uno ya existente. Las situaciones en que esto sea necesario pueden ser muy variopintas, pero voy a poner dos ejemplos, aunque sean un poco forzados, para ilustrar que no es nada complicado el hacer nuevos comandos o redefinirlos, si fuera el caso. El formato del comando que crea comandos es el siguiente:
Donde:
\nombre
- es el nombre del comando.
args
- es un número menor de 9 que indica el número de argumentos del comando.
opciones
- define las opciones del comando... como implica el uso de condicionales en el código, lo pongo para que sepáis que existe, pero no es contenido para un uso básico de LaTeX.
definición
- es texto LaTeX sin más, los argumentos dentro de
la definición tendrán el formato
#n
, donden
indica el número de orden recibido.
¿Complicado? Parece que dicho así en abstracto lo es, pero es bastante
más sencillo en la práctica. Vamos a ver un ejemplo sencillo: imagina
que no tienes en el teclado los caracteres «»
necesarios para
utilizar las comillas españolas. Sin embargo, quieres utilizar las
comillas a la española y no a la inglesa. ¿Qué hacemos? Pues
definir un comando que al llamarlo las escriba por nosotros. Para ello
definimos el siguiente comando:
Es decir, hemos definido el comando \comillas
, que recibe 1
parámetro y que escribe \guillemotleft
(«
) delante del parámetro
#1
y después añade un \guillemotright
(»
).
Si añadimos en la cabecera dicho comando, podremos escribir en cualquier sitio de nuestro documentos, ─también de los documentos que importemos─, texto que haga referencia o llame a nuestro comando:
Repasando el funcionamiento del comando, podemos ver en este ejemplo,
que el comando \comillas
recibe un parámetro #1
con valor
comillas españolas
y, por tanto en la salida, lo rodea de un
carácter \guillemotleft
delante y un carácter \guillemotright
detrás. Por otro lado, el mismo efecto se podría conseguir utilizando
<<
delante y >>
detrás, sin necesidad de crear un comando
específico. El resultado en nuestro documento será:

Igual que podemos definir comandos, también podemos definir entornos de texto. El comando para hacerlo es muy similar:
La diferencia con la definición de comandos es que necesita dos
bloques de código. La primera, comienzo
, determina todos los
comandos que afectarán al bloque de texto contenido en el entorno. La
segunda, final
, se compondrá de los comandos que restauren la
presentación o características de los párrafos del documento que se
han modificado en el primero bloque. Para verlo más claro, va un
ejemplo. Pretendemos hacer que nuestras citas se remarquen visualmente
mejor, nos gusta que el tamaño de la letra sea un poco más pequeño y
que utilice letra cursiva para remarcar visualmente que ese texto no
lo hemos escrito nosotros. El código podría ser el siguiente:
En el código anterior definimos un entorno llamado cita
. Podríamos
haber creado todo el entorno desde cero, definido márgenes, tipos de
letra, familia de la fuente, etc. Todas esas definiciones irían en el
primer bloque del comando. Posteriormente, deberíamos reestablecer los
márgenes, fuentes y familia de la fuente, en el segundo bloque. Sin
embargo, en LaTeX ya existe un entorno quotation
que nos modifica
los márgenes izquierdo y derecho del contenido para remarcar que es
una cita textual de otro documento, libro u obra. Por lo tanto, vamos
a aprovecharlo y puesto que sólo necesitamos que la letra sea un poco
más pequeña (\small
) y que se muestre en cursiva (\it
), le
forzamos a que inicie un bloque \quotation
con estas opciones y
cuando acabe, que restaure el estilo de texto cerrando dicho entorno.
Para hacer una prueba de funcionamiento he añadido el siguiente texto, tras añadir el comando anterior a nuestra cabecera:
El resultado obtenido es el siguiente:

Como vemos es muy sencillo el crear nuestros propios comandos y entornos, basándonos en los ya existentes. Crear comandos o entornos desde cero es algo más complejo y se sale de las pretensiones de este minicurso. Por otro lado, es posible que nuestras necesidades pasen por modificar el comportamiento de un comando o de un entorno ya existentes y que se pueda aplicar con el mismo nombre de comando o entorno. Si es así, si lo que hacemos en redefinir comandos previos, LaTeX nos lanzará un error. Para evitar eso debemos utilizar los comandos:
Las opciones de las definiciones son las mismas para los renew que para los new, la única diferencia es que si utilizamos new, a secas, LaTeX interpreta que estamos creando un comando totalmente nuevo. Por tanto, si ya existía, nos lanzará un error para avisarnos de que estamos intentando crear un comando con un nombre ya utilizado. Si utilizamos renew interpretará que lo que queremos es redefinir un comando si existe y, si no existe lo creará.
Contadores
LaTeX utiliza una serie de contadores y/o variables para realizar
algunas tareas de numeración a lo largo de los documentos. Por
ejemplo, el número de página, el número de capítulo, el de la sección,
el orden del ítem en una lista de tipo enumerate
, etc. También
podremos crear los nuestros, pero la necesidad de crear un contador o
variable también sobrepasa el uso básico de LaTeX para meterse en
profundidades de programación. De momento, en este minicurso, nos
vamos a quedar con la posibilidad de modificar un contador ya
existente, que ya es suficiente para un uso básico.
Por defecto, la lista de contadores con que cuenta LaTeX en un documento de clase book es la siguiente:
Tipo de uso | contador | significado |
---|---|---|
Estructura de documento | page |
Página |
part |
Parte | |
chapter |
Capítulo | |
section |
Sección | |
subsection |
Apartado | |
subsubsection |
Subapartado | |
paragraph |
Párrafo | |
subparagraph |
Subpárrafo | |
Para entornos flotantes | equation |
Ecuaciones |
figure |
Figuras | |
table |
Tablas | |
Para anotaciones | footnote |
Nota al pie |
Para enumeraciones | enumi |
1er nivel de la lista |
enumii |
2º nivel de la lista | |
enumiii |
3er nivel de la lista | |
enumiv |
4º nivel de la lista |
Para obtener una cadena formateada con su valor, se suele utilizar el nombre de contador con the, ─el artículo en inglés─, delante. Esto es así, porque muchos de ellos pueden mostrarse encadenados. Por ejemplo, el índice de una sección suele estar formado por el número de capítulo y el número de sección. Hablar de los contadores y sus idiosincrasias así en abstracto es complejo, mejor es ver cómo funcionan y cómo podemos utilizarlos según nuestras necesidades.
Vamos a poner un par de ejemplos para ilustrar cómo se trabaja con los
contadores de una manera más avanzada. Para empezar, con un primer
ejemplo que podemos necesitar: comenzamos una enumeración, y resulta
que debemos detenerla para dar una explicación algo más
larga. Cerramos el entorno enumerate
, escribimos nuestra explicación
y cuando queremos retomarla abriendo de nuevo el entorno enumerate
resulta que la numeración vuelve a comenzar por el 1
.
Observa el siguiente código:
El resultado será el siguiente:

No te pierdas en el código, sólo he definido dos minipáginas
para
poder mostrar el efecto de no modificar el contador (a la izquierda) y
de modificarlo (a la derecha). Como podemos ver en la imagen, la
enumeración de la derecha se retoma con el ítem 4, mientras que la de
la izquierda comienza a numerar de nuevo. Para hacerlo, si miramos el
segundo entorno enumerate
de la segunda minipage
, he utilizado el
comando \setcounter
Donde,
contador
- Es el nombre del contador que queremos modificar.
valor
- Es el valor que se quiere establecer.
Hay que tener en cuenta, que cuando el entorno enumerate
inicia su
contador lo hace puesto a 0
porque luego cada comando \item
lo
actualiza. De esta manera es recomendable pensar, para no liarnos, que
debemos establecer el valor del contador a aquél que tenía cuando lo
interrumpimos.
Ahora bien, una cosa son los contadores y otra es cómo se visualizan en el código. Pongo un ejemplo completo y después lo explicaré:
Sí, podemos escribir comandos en cualquier sitio de nuestro
documento. Cuando lo hacemos en la cabecera, afectará a todo el
documento, mientras que si lo hacemos en otros lugares, afectará sólo
al contenido del documento que se encuentra tras él. Por tanto, en
cualquier sitio podemos utilizar un \renewcommand
, como ilustra el
ejemplo anterior.
El resultado del código de ejemplo anterior en nuestro documento es el siguiente:

Como se puede apreciar utilizo el comando \renewcommand
, porque
estoy modificando instrucciones que ya estaban definidas. Además,
también hay que llamar la atención, que una cosa es el contador
(enumi
), otra su representación (theenumi
) y otra la etiqueta que
utilizamos en la enumeración (labelenumi
). Y para rematar, también
contamos con varias formas de enumeración:
Comando | Tipo |
---|---|
\arabic |
Número normal |
\Roman |
Número romano en mayúscula |
\roman |
Número romano en minúscula |
\Alph |
Letra mayúscula |
\alph |
Letra minúscula |
Para ilustrar cómo funcionan los distintos tipos de numeración de los contadores he introducido una tabla en nuestro fichero de ejemplo:
El resultado es el siguiente:

Conclusión
Para acabar el minicurso nos queda hablar de crear nuestro primer
archivo de estilos LaTeX. Una vez que hemos visto cómo podemos
definir y redefinir comandos y entornos, la tarea será fácil. El
fichero .sty
que crearemos será sencillo, importará algunos estilos
externos y los modificará con los comandos que ya hemos visto.
Introduciré algún comando nuevo y presentaré algún paquete útil para
afinar en el aspecto de nuestros documentos. Con todo esto, creo que
nuestro minicurso llegará a su fin. No te pierdas la última
entrega.
Recuerda que nuestro fichero de ejemplo ha ido creciendo poco a poco y
que podéis descargarlo con las últimas modificaciones
de este enlace. A su vez, también puedes descargar el pdf
generado.
Comentarios