Minicurso de LaTeX para psicólogos II
En la anterior entrega hablé por encima de las ventajas que tiene un sistema de generación de documentos escritos como LaTeX sobre los más extendidos editores de documentos. Como principal inconveniente conté que LaTeX no te deja hacer lo que quieres directamente. Y también expliqué por encima que, efectivamente, los cambios que haremos sobre nuestro documento tienen que ser meditados y conscientes. Para ello, se utiliza el concepto de paquete, cualquier cosa, cualquier necesidad que tengas, a la hora de producir un documento impreso, seguramente ya lo habrá tenido alguien y habrá creado un paquete que facilite la edición. Por tanto, en esta ocasión hablaré sobre paquetes, sobre la estructura de los documentos y sobre las fuentes y sus características.
Los paquetes y las fuentes
Ya vimos en la anterior entrega que utilizábamos varios paquetes para
poder trabajar: uno cambiaba el idioma de inglés, ─el idioma por
defecto─, a español, babel
; otro cambiaba el formato del texto,
─ASCII por defecto─, a utf8
(o latin1
) que utilizan los
ordenadores modernos, inputenc
; por último, otro modificaba las
fuentes de salida, de forma similar a como las cambia para la entrada
el paquete anterior, fontenc
.
Con la prueba que hicimos vimos un documento impreso que aunque, correcto formalmente, tenía un aspecto un poco desfasado. La fuente que utiliza es antigua, no se me ocurre otra palabra para definirla. ¿La podemos cambiar? ¿Podemos cambiar el tamaño?
Vamos a cambiar la fuente básica del documento a una de las fuentes que más utilizo. Para ello sólo tengo que añadir un línea en la cabecera de nuestro documento que importe la fuente que queremos a nuestro trabajo:
\usepackage{palatino}
Al final del documento pondré un enlace al fichero TeX tal y como quede después de todos los cambios que vaya haciendo. De momento vamos a concentrarnos en el cambio de fuente. Por ver comparados los dos resultados, los pongo juntos:
Como se puede ver, palatino (a la izquierda) es un tipo de fuente
más legible y bonita que la configurada por defecto. La letra se ha
cambiado en todo el documento, ya veremos otras florituras como
cambiar el tipo en las cabeceras. ¿A alguien le ha pasado alguna vez
que han querido cambiar la fuente de su documento y ésta cambia unas
veces sí y otras no? En LaTeX no pasa, cambia todo porque todo el
texto es del mismo estilo y los cambios que tiene que hacer los
marcas sólo en las partes donde es necesario. Sin embargo, en un
editor de documentos es posible que un párrafo esté marcado como
cuerpo de texto
mientras el siguiente sea párrafo normal
... cuando
ambos coinciden no hay problema, pero si modificas el formato de
párrafo normal
y hay párrafos marcados como cuerpo de texto
que no
has visto, resulta que tienes que ir párrafo a párrafo haciendo el
cambio.
¿Queda mejor el cambio de letra? Sí, pero he probado yo a hacerlo y
me ha dado un error... Es posible, comprueba que tienes instalado el
paquete de la fuente Palatino
. Recuerda que LaTeX no usa las
fuentes del sistema sino las propias y aunque tengas la fuente
instalada en el sistema se producirá un error si no está instalado el
paquete de LaTeX. Tienes que comprobarlo en el gestor de paquetes de
LaTeX.
Otra de las cosas que pueden resultar chocantes es la forma de definir los márgenes y la geometría de la página. Supongo que os resultó extraño estar definiéndolas haciendo sumas y restas como en nuestro encabezamiento y teniendo en cuenta el tamaño de la zona impresa.
\textheight = 21cm % largo del texto impreso (por defecto 19cm) \textwidth = 18cm % ancho texto impreso (por defecto 14cm) \topmargin = -1cm % margen superior (por defecto 3cm): 3-1=2cm \oddsidemargin = -1.5cm % margen izquierdo (por defecto 4.5cm): 4.5-1.5=3cm
Hay un paquete que nos facilita las cosas a la hora de lidiar con
estos aspectos: geometry
. Con este paquete podemos sustituir todo lo
anterior por una sola línea:
\usepackage[a4paper,margin=3cm]{geometry}
Por supuesto, geometry
es más complejo que sólo lo que he puesto
ahí, no tienes más que mirar su documentación. Podemos definir cada
margen de forma separada con las opciones top
, bottom
, left
y
right
, el espacio para cabeceras y pies, guardar diversas geometrías
de página y llamarlas según lo necesitemos, etc. Todas esas opciones
pasan de lo que es el uso básico. Pero es bueno tener presente que
podemos utilizar el comando \newgeometry
para definir las opciones
de la geometría para aquellas páginas que se necesite cambiar. Toda
la geometría depende también de las opciones del documento. Lo que
hace a4paper
en las opciones del paquete es definir el A4
como el
tamaño de papel de la geometría en adelante. Lo normal, es que lo
hayamos definido al declarar el documento.
Por ejemplo, el tamaño de texto que utiliza LaTeX por defecto es
10pt
, como dije en el artículo anterior. Lo podemos ajustar en las
opciones de documento:
\documentclass[a4,11pt,doubleside]{article}
Las opciones del documento se definen como en cualquier paquete. A mí me gusta pensar que, al fin y al cabo, LaTeX es un paquete que funciona sobre TeX.
Ahí, por ejemplo, se define que utilizamos papel A4
, con una fuente
de 11pt
y que el documento se imprimirá a doble cara, es decir, que
la geometría de las páginas pares e impares será distinta.
Los tamaños de las fuentes pueden ser 10pt
, 11pt
y 12pt
. Si
necesitamos jugar con otros tamaños, podemos utilizar el tipo de
documento memoria: \documentclass{memoir}
, donde se pueden definir
los siguientes tamaños: 9pt
, 10pt
, 11pt
, 12pt
, 14pt
, 17pt
,
20pt
, 25pt
, 30pt
, 36pt
, 48pt
y 60pt
. Esos son los tamaños
básicos, que se pueden modificar con los comandos relativos que vimos
ya en el artículo anterior y que podemos ver en el ejemplo anterior.
Además, podemos modificar con qué fuentes vamos a trabajar. Para ilustrarlo he añadido a nuestro fichero de prueba la siguiente sección1:
\section{Fuentes} Podemos, de todas formas, hacer un cambio de fuente temporal, si es lo que queremos. \begin{table}[!h] \centering \begin{tabular}{l l} \hline \textbf{Comando} & \textbf{Resultado} \\ \hline \verb|{\fontfamily{pag}\selectfont Avant Garde}| & {\fontfamily{pag}\selectfont Avant Garde} \\ \verb|{\fontfamily{fvs}\selectfont Bitstream Vera Sans}| & {\fontfamily{fvs}\selectfont Bitstream Vera Sans} \\ \verb|{\fontfamily{pbk}\selectfont Bookman}| & {\fontfamily{pbk}\selectfont Bookman} \\ \verb|{\fontfamily{bch}\selectfont Charter}| & {\fontfamily{bch}\selectfont Charter} \\ \verb|{\fontfamily{cmr}\selectfont Computer Modern}| & {\fontfamily{cmr}\selectfont Computer Modern} \\ \verb|{\fontfamily{pcr}\selectfont Courier}| & {\fontfamily{pcr}\selectfont Courier} \\ \verb|{\fontfamily{phv}\selectfont Helvetica}| & {\fontfamily{phv}\selectfont Helvetica} \\ \verb|{\fontfamily{fi4}\selectfont Inconsolata}| & {\fontfamily{fi4}\selectfont Inconsolata} \\ \verb|{\fontfamily{lmr}\selectfont Latin Modern}| & {\fontfamily{lmr}\selectfont Latin Modern} \\ \verb|{\fontfamily{lmss}\selectfont Latin Modern Sans}| & {\fontfamily{lmss}\selectfont Latin Modern Sans} \\ \verb|{\fontfamily{lmtt}\selectfont Latin Modern Typewriter}| & {\fontfamily{lmtt}\selectfont Latin Modern Typewriter} \\ \verb|{\fontfamily{pnc}\selectfont New Century Schoolbook}| & {\fontfamily{pnc}\selectfont New Century Schoolbook} \\ \verb|{\fontfamily{ppl}\selectfont Palatino}| & {\fontfamily{ppl}\selectfont Palatino} \\ \verb|{\fontfamily{ptm}\selectfont Times}| & {\fontfamily{ptm}\selectfont Times} \\ \verb|{\fontfamily{put}\selectfont Utopia}| & {\fontfamily{put}\selectfont Utopia} \\ \verb|{\fontfamily{pzc}\selectfont Zapf Chancery}| & {\fontfamily{pzc}\selectfont Zapf Chancery} \\ \hline \end{tabular} \caption{Colección de fuentes} \end{table}
Aunque todavía no hemos visto cómo hacer tablas, he utilizado una para mostrar el comando y su resultado. Si intentas copiar y pegar el código anterior, comprueba que tienes instaladas las fuentes que se usan aquí. El resultado es el siguiente:
Si estás acostumbrado a utilizar las fuentes del sistema y prefieres utilizarlas, también se puede, pero no con TeX o LaTeX directamente, sino con los derivados XeTeX o XeLaTeX. Como esos aspectos se salen fuera de la intención del minicurso de LaTeX, lo dejo para que lo investiguéis.
De momento, con los comandos que nos proporciona LaTeX para manejar las fuentes estamos servidos. Por ejemplo, para definir la fuente general, como hemos visto, utilizamos el paquete que queramos. Los más habituales son:
\usepackage{pslatex} | \usepackage{bookman} |
\usepackage{helvet} | \usepackage{palatino} |
\usepackage{newcent} | \usepackage{pxfonts} |
\usepackage{txfonts} | \usepackage{concrete} |
\usepackage{cmbright} | \usepackage{fourier} |
\usepackage{mathptmx} | \usepackage{mathpazo} |
Por supuesto, hay un extenso catálogo de fuentes que podemos utilizar. No es necesario tenerlas todas instaladas, pero cuando las necesitemos lo que tenemos que instalar su paquete correspondiente. Estos paquetes suelen proporcionar comandos específicos y opciones para seleccionar entre las variantes de la fuente cuál se utilizará. Es muy recomendable echarle un vistazo si queremos hacer algún tipo de floritura como veremos ahora. Sin embargo, la mayoría de las veces será suficiente con incluir el paquete y no preocuparnos demasiado del aspecto que tendrá el documento, porque normalmente las opciones por defecto suelen arrojar buenos resultados.
Atributos de las fuentes
Podía ser titulado este apartado, cómo cometer todos los errores que cometemos en los editores de documentos respecto a las fuentes. Pero quedaba un título muy largo para una sección. Como digo, no se suelen utilizar los atributos de las fuentes directamente, salvo cuando ya estamos en condiciones de crear, o si lo prefieres programar, nuestros propios estilos para el documento. Lo pongo aquí para que se vea que se puede hacer lo mismo, pero con algo más de esfuerzo.
Todas las fuentes en LaTeX tienen cinco atributos:
Atributo | Significado |
---|---|
encoding | Valore numéricos de los caracteres |
family | Familia de la fuente |
serie | Representa el peso de la fuente |
shape | Es la forma de la fuente |
size | Tamaño de la fuente |
El encoding lo podemos seleccionar con el comando \char
, por
ejemplo, \char126
nos devolverá un carácter ~
. En TeX y en
LaTeX el número no puede sobrepasar el valor 255
, pero en XeTeX
o XeLaTeX se puede utilizar el código utf
en hexadecimal.
En la lista que pusimos antes de las fuentes ya utilizamos el comando
\fontfamily
y podemos ver cómo funciona. No voy a darle más vueltas,
sólo hay que mirar los ejemplos anteriores.
La serie de la fuente se determina con:
Valor | Significado |
---|---|
\fontseries{} |
Peso de la fuente |
m | Medium |
b | Bold |
bx | Bold extended |
sb | Semi-bold |
c | Condensed |
La forma puede ser:
Valor | Significado |
---|---|
\fontshape{} |
Forma de la fuente |
n | Normal |
it | Itálica |
sl | Slanted, oblicua |
sc | Small Caps |
El tamaño necesita un parámetro adicional al tamaño de la fuente,
que es el interlineado. Es decir, el tamaño de la separación entre
líneas del texto. Un valor de 1
especifica una separación idéntica
al tamaño de letra que definimos. Por tanto, la forma en que lo
haremos será \fontsize{pt}{1}
, dónde pt indica el tamaño en puntos
que queremos para nuestra fuente. Por poner un ejemplo, si escribimos
en nuestro documento:
{\fontfamily{bch}\fontsize{30}{1}\fontshape{sc}\selectfont{Qué pasada!}}\normalfont Tengo todo el poder en la punta de mis dedos.
Por explicar un poco más el comando que está escrito encerrado entre
{}
:
\fontfamily{bch}
- Define la familia utilizada a Charter.
\fontsize{30}{1}
- Establece un tamaño de
30pt
con un interlineado de1
. \fontshape{sc}
- El texto se escribirá en small caps (pequeñas mayúsculas).
\selectfont
- recoge los parámetros anteriores y se los aplica al
elemento
{Qué pasada}
.
Obsérvese la vuelta al tipo de fuente general del documento con el
comando \normalfont
. Con estas pocas líneas obtendremos un resultado
tal que:
Si a todo ésto le añadimos que podemos producir un salto de línea
donde queramos con el comando \\
o un salto de página con
\pagebreak
, ya podemos cometer todos los errores que hacemos cuando
utilizamos un editor de documentos sin ningún tipo de problemas.
Este tipo de cosas no cuentan como aspectos básicos de LaTeX, no te preocupes si hay algo que se te escapa. Lo cuento porque es importante que seas consciente de dos cosas:
- Puedes hacer muchas más cosas de las que a priori dan a entender los artículos introductorios que leo por ahí. Pero hacerlas implica un gasto de energía, que impedirá que lo hagas si no es estrictamente necesario.
- Cualquier cosa que necesites seguramente ya estará implementada en un paquete, mira en la documentación, averigua por Internet. Seguro que alguien más avanzado necesitó algo parecido e implementó un paquete o preparó una plantilla, que te facilitarán la vida.
Estructura de los documentos y referencias internas
La estructura de los documentos viene definida por su tipo, como dijimos en el artículo anterior. La forma más habitual de tener una referencia del contenido de nuestro documento es hacer una tabla de contenidos que nos muestre dicha estructura. Simplemente tenemos que ir definiendo las cabeceras con el comando apropiado. Dichas cabeceras se definen con los siguientes comandos:
Comandos | Significado |
---|---|
\part |
Agrupación superior de contenidos |
\chapter |
Capítulo |
\section |
Sección |
\subsection |
Apartado |
\subsubsection |
Subapartado |
\paragraph |
Punto |
\subparagraph |
Subpunto |
Estos comandos tienen su equivalente con *
, la diferencia es que
cuando definimos un capítulo con \chapter*{Nombre}
, el capítulo y
sus apartados internos no se mostrarán en la tabla de contenidos del
documento.
Los editores de documentos nos han acostumbrado a citar nuestros apartados, figuras, tablas con referencias vagas. Si citamos la sección 2.3 y resulta que luego decidimos añadir otro apartado delante de esa sección, la numeración cambia y tenemos que repasar el texto para modificar todas esas referencias que hayamos puesto a mano. Eso es un hecho que nos coarta a la hora de redactar de forma directa nuestras referencias con los editores de documentos.
LaTeX nos proporciona el comando \label{}
para señalar el objeto
referenciado. Por ejemplo, en nuestro documento de pruebas, he añadido
un par de etiquetas. La primera en la sección y la segunda en la tabla:
... \section{Fuentes}\label{sec:fuentes} ... \caption{Colección de fuentes}\label{tab:fuentes} ...
Puedes utilizar cualquier nombre que se te ocurra para las etiquetas,
como a32EEfun4
, siempre que luego te acuerdes del mismo. Lo más
racional es llamar a las cosas por un nombre significativo. En el
ejemplo, quiero referenciar un apartado que habla sobre fuentes y
una tabla que las muestra. Si las dos etiquetas fueran fuentes
no se
podría distinguir a cual de las dos te refieres. Por eso es muy
interesante utilizar el truco de anteponer en la etiqueta un preámbulo
sec:
, o fig:
, o tab:
según el tipo de objeto al que queremos
referenciar. Como digo es voluntario, pero es una forma de que sepamos
a primera vista, si estamos referenciando una sección de texto, una
figura o una tabla, respectivamente.
Los comandos de referencia son dos: \ref
y \pageref
. El primero
nos devolverá el número del objeto, por eso \label
debe estar
anexado al título del apartado o al caption de la tabla o figura,
que son los que conocen dicho número. Para ver correctamente el
resultado de las referencias necesitaremos repetir la compilación
del documento. La primera pasada lo que hace LaTeX es crear un
fichero auxiliar donde guarda los números de todas las etiquetas y la
segunda pasada los coloca en su lugar. Si nos quedamos con el
documento que genera corriendo sólo una vez veremos algo así:
Podemos apreciar que utiliza el conjunto ??
para indicar que le
falta un hervor todavía. Después de dárselo ya veremos algo como:
Resulta un poco laborioso si lo hacemos desde la línea de comandos. La situación más compleja que se nos puede presentar es generar un documento que tenga hacer una tabla de contenidos, o índices de tablas y/o figuras y cuente además con bibliografía y múltiples enlaces internos. En este caso tendremos que utilizar cuatro pasos:
- Generación, con
pdflatex
, del primerpdf
y de los archivos auxiliares de índices, referencias y otros enlaces. Se analizan todas las referencias menos las citas bibliográficas. - Generación del segundo
pdf
con la sustitución de todos los enlaces e índices y referencias incrustadas, salvo la bibliografía. - Generar el índice de citas bibliográficas con la herramienta
adecuada. La tradicional es
bibtex
, pero en la actualidad hay otras herramientas comobiber
,biblatex
onatbib
. Ya hablaré sobre bibliografía en otra entrega de este minicurso. - Generar el
pdf
definitivo con las citas bibliográficas y la bibliografía perfectamente ensambladas.
Si estás utilizando algún editor dedicado, seguramente hará todos los pasos por ti, o por lo menos, como hace Emacs avisará de que hay una tarea más que realizar y cuál es.
Cabeceras de sección demasiado largas
Hay ocasiones que necesitamos ponerle a una sección un título perfectamente descriptivo de lo que es. Lo más habitual es que un título siendo descriptivo será también demasiado largo y nos estropee los índices o los encabezados de página2. Por ejemplo, si definimos una cabecera de una sección tal que:
\section{Esto es un título muy largo y muy necesario para demostrar que mi capacidad de síntesis es mediocre tirando a nula}
obtenemos, como es natural, un índice y un título con este aspecto:
En el texto nos puede servir, al fin y al cabo no suele haber elementos alrededor que se descuadren por tener un vecino indeseable como ese. Sin embargo, en el índice puede resultar molesto tener un elemento que ocupa más de una línea. Si en lugar de definir la cabecera como hemos visto antes, lo definimos así:
\section[Un título largo]{Esto es un título muy largo y muy necesario para demostrar que mi capacidad de síntesis es mediocre tirando a nula}
Lo único que hemos cambiado es que hemos añadido una opción de título. El resultado se verá como sigue:
Como podemos apreciar, el título en la página sigue mostrándose, de manera idéntica, en toda su extensión. Sin embargo, en el índice se ha empleado el título alternativo que le hemos proporcionado en la opción.
Resumen
Creo que este curso introductorio se me está yendo de las manos, cuento tres tontás y el resto se va a la siguiente entrega. Apenas he hablado un poco sobre las fuentes y sobre las cosas que no hay que hacer... o sí, que nunca se sabe, porque poder se pueden hacer.
Pero también hemos visto cómo se utilizan los comandos más habituales. Las pruebas las voy colocando en un archivo que podéis descargar también en el siguiente enlace:
Comentarios