Minicurso de LaTeX para psicólogos vi
En el artículo de hoy pienso poner punto y final a este minicurso de
LaTeX. Hablaré de cómo crear nuestro propio estilo en un fichero
.sty
para luego poder utilizarlo como con cualquier otro paquete,
con el comando \usepackage
. Aunque sin meternos en demasiadas
profundidades de programación. Por último, veremos también cómo
proveer a nuestro documento de una bibliografía, que hará las veces de
guinda del pastel.
Crear nuestro propio estilo
Llegados a este punto, igual que podemos simplificar nuestro
documento maestro con importaciones de contenido, podemos hacer algo
parecido con las cabeceras. Además, es muy aconsejable hacerlo con las
cabeceras porque es donde definiremos, ─o redefiniremos─, los comandos
y entornos que necesitamos a nuestro gusto. Eso puede hacer que
nuestra cabecera se vuelva compleja e ininteligible. Sacar toda la
complejidad de nuestro documento nos facilitará la lectura y nos
permitirá cambiar el chip entre pensar en el contenido y pensar en
el diseño. Para ello, podemos hacer el trabajo de dos maneras: una es
definir una clase de documento completa, que se guardará en un
fichero .cls
y se importará en la instrucción \documentclass
. Esta
manera es más compleja que simplemente especificar unos cuantos
estilos agrupando unos cuantos comandos en un fichero .sty
, que
sería la segunda manera.
Además, tradicionalmente, también se hace diferencias en el tipo de
cosas que va en cada uno de ellos. En los archivos cls
(class)
suele definirse el tamaño de papel, el tamaño de letra, comandos de
estructura del documento ─cabeceras, índices, datos─. Es aconsejable
además tener en cuenta parámetros que pueden establecerse como
opciones cuando se llama a \documentclass
. Por otro lado, los
ficheros sty
suelen utilizarse para simplemente dar formato nuestros
documentos definiendo el aspecto final del mismo: diseño de página,
tamaño de letra, familia de la fuente, etc.
Ambas formas, estilo y clase son muy similares: ¿Cuándo utilizar
un paquete de estilo o cuándo una clase? La regla básica es si
vamos a definir comandos que se pueden emplear en cualquier clase de
documento ─libro, artículo, carta, informe, etc─, mejor utilizamos un
paquete de estilo (sty
). Si los comandos que vamos a definir, sólo
se podrán utilizar en una clase definida, mejor utilizamos un cls
.
En nuestro caso, queremos que nuestros comandos sean utilizables por
cualquier tipo de documento que generemos; es más, lo que hacemos es
utilizar llamadas a determinadas opciones de diseño. Por tanto,
elegimos hacer nuestro propio estilo creando un fichero que se llame
miestilo.sty
y que contendrá lo mismo que nuestra cabecera.
Exactamente lo mismo no, como digo lo normal es que queramos
reutilizar ese fichero y todo nuestro esfuerzo, para no tener que
repetirlo con cada documento. Por eso, lo más lógico es que metamos en
él aquellas cosas generales que tienen que ver con cómo se ve el
documento desentendiéndose del contenido. Así, por ejemplo, al
importar el paquete hyperref
hacíamos una definición de parámetros
que pueden considerarse contenido en el comando \hypersetup
, como
el autor o el título del pdf
. Pero vamos con ejemplos para
ilustrarlo.
La primera cosa que necesitamos especificar para crear nuestro propio estilo es el formato de código que vamos a emplear y la segunda, ponerle un nombre al paquete. Para ello, comenzamos nuestro fichero de estilo con las siguientes instrucciones:
\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{miestilo}[2021/04/12 v1.0 Mi propio estilo]
La primera línea, como dije antes, especifica el formato de TeX que queremos utilizar. En nuestro caso LaTeX2e. Hay que ser cuidadoso con el uso de las mayúsculas y minúsculas en estos comandos.
El segundo comando, \ProvidesPackage
define el nombre del paquete,
en nuestro caso miestilo
y una serie de opciones o datos del estilo:
La fecha de realización, la versión (v1.0
) y un nombre largo del
estilo.
El siguiente paso es sencillo: copiamos toda la cabecera de nuestro
documento, exceptuando los comandos \title{}
y \author{}
al
fichero miestilo.sty
. Éste debería quedar como sigue:
\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{miestilo}[2021/04/12 v1.0 Mi propio estilo] \usepackage[a4paper,margin=3cm]{geometry} % Paquetes básicos \usepackage[T1]{fontenc} % fuentes adecuadas para salida \usepackage[utf8]{inputenc} % acentos y caracteres especiales, desde el teclado \usepackage[spanish]{babel} % Traducción al español de los epígrafes % de LaTeX: ‘Capítulo’, ‘Índice’ % ‘Figura’... \usepackage{palatino} % Importamos la fuente Palatino \usepackage{pifont} \usepackage{multirow} % Tablas con celdas en varias líneas \usepackage{graphicx} % Paquete extendido de gráficos \usepackage{subcaption} % Múltiple gráficos en una figura \usepackage{xcolor} % Paquete para colores \usepackage{hyperref} % Habilitación de enlaces \hypersetup{ % Configuración de los enlaces y el pdf breaklinks=true, colorlinks=true, linkcolor=blue, citecolor=green, filecolor=cyan, pdflang={Spanish}, pdfpagemode={UseOutLines}, pdfpagelayout={OneColumn}} \definecolor{migris}{gray}{0.75} \newcommand{\comillas}[1]{\guillemotleft{#1}\guillemotright} \newenvironment{cita}{% \small\it\begin{quotation} }{% \end{quotation} }
También tenemos que modificar nuestro documento que quedará como:
\documentclass[a4,11pt,doubleside]{article} \usepackage{miestilo} \title{Documento básico de ejemplo} % El título del documento \author{Notxor} % El autor \begin{document} % Entorno que contiene el documento % [...] \end{document}
El resto del código es el idéntico. pero como podemos ver, nuestra cabecera de documento ha quedado reducida a la mínima expresión.
Pero de todas las cosas que nos son más útiles en un fichero de estilo es la modificación de los encabezados o los términos utilizados en el documento. Por ejemplo, si estuviéramos escribiendo un libro de texto, podríamos añadir el siguiente código:
\addto\captionsspanish{\renewcommand{\partname}{Unidad didáctica}} \addto\captionsspanish{\renewcommand{\chaptername}{Lección}} \addto\captionsspanish{\renewcommand{\tablename}{Tabla}} % En lugar de «cuadro» por defecto \addto\captionsspanish{\renewcommand{\listtablename}{Índice de tablas}}
Si nos fijamos bien en el código, estamos añadiendo (addto
) a la
lista de títulos en español (captionspanish
) los cambios realizados
en los comandos (renewcommand
)...
De este modo, podríamos también redefinir la estructura de las
cabeceras desde cero. O también, por resaltarlas mediante las
facilidades de otro de los paquetes de LaTeX que conviene mirar:
titlesec
. Por ejemplo, si añadimos a nuestro fichero de estilo el
siguiente código:
% Modificar cabeceras \usepackage{titlesec} \titleformat{\section}[frame] {\normalfont}{\filcenter\small\ Sección \thesection}{7pt}{\Large\sffamily\bfseries\filcenter} \titleformat{\subsection}[block] {\normalfont}{ \colorbox{migris}{\large\sffamily\bfseries \thesubsection}}{.5em}{\large\sffamily\bfseries}
El formato utilizado es el siguiente:
\titleformat{\cabecera}[Tipo]{Formato}{Etiqueta}{Separación}{Código anterior}[Código posterior]
No quiero alargar demasiado este último artículo, pero creo que viendo
el formato, cómo lo uso y el resultado obtenido, es fácil saber cómo
funciona. En todo caso la información que aporta la documentación del
paquete titlesec
es suficientemente clara. Como puedes ver, consiste
en dotar de formato tanto a la etiqueta numérica en el apartado
Etiqueta
y al texto de la cabecera en el Código anterior
. Contamos
además con diferentes tipos de cabecera. En el ejemplo he usado
frame
(marco), y block
(bloque), pero hay más. El resultado
es:
Otro paquete digno de tener en cuenta en cuestión de estilos es el que nos facilita el diseño de las páginas; entendiendo por tal, la estructura de las cabeceras y los pies de las páginas. Como siempre, pongo un ejemplo y luego lo explico más despacio.
% Diseño de cabeceras y pies de página \usepackage{fancyhdr} % Importamos el paquete \pagestyle{fancy} % Página por defecto \fancyhf{} % Definición del estilo de página por defecto \fancyhead[LE,RO]{\thepage} \fancyhead[RE]{\textit{\nouppercase{\leftmark}}} \fancyhead[LO]{\textit{\nouppercase{\rightmark}}} \fancyfoot[R]{\small\textit{\href{https://notxor.nueva-actitud.org}{Notxor tiene un blog}}} \renewcommand{\headrulewidth}{0.4mm} \renewcommand{\footrulewidth}{0.2mm}
El resultado es:
Lo que hace el código es sencillo de entender:
- Importamos el paquete
fancyhdr
, que se trabaja sobre el aspecto de las páginas. - Definimos el estilo por defecto, si no se especifica otra cosa, de
todas las páginas:
fancy
. - Borramos todas las definiciones que haya en el espacio dedicado a
cabeceras y pies con
\fancyhf{}
, para definir los nuevos desde cero. - Definimos los contenidos con los comandos
\fancyhead
y\fancyfoot
. Ahora veremos la estructura de estos comandos. - Redefinimos las líneas de separación de las cabeceras y pies.
Los comandos para definir el contenido de cabeceras y pies tienen el siguiente formato:
\fancyhead[posición]{contenido} \fancyfoot[posición]{contenido}
El parámetro posición
tiene los siguientes significados:
Inicial | Significado |
---|---|
E |
Página par (even) |
O |
Página impar (odd) |
L |
Izquierda (left) |
C |
Centro (center) |
R |
Derecha (right) |
H |
Cabecera (head) |
F |
Pie (foot) |
Por ejemplo, en el código anterior la definición
\fancyhead[LE,RO]{\thepage}
Lo que hace es poner el número de página1 a la izquierda (L
) en
las páginas pares (E
) codificando como LE
, y a la derecha (R
) en
las páginas impares (O
), codificando como RO
.
También podemos definir estilos de página especiales. Por ejemplo, en el caso de necesitar una página totalmente en blanco, sin cabeceras ni pies, ni líneas de separación, podríamos definir el siguiente estilo:
\fancypagestyle{plain}{ % Definición del estilo de página «plain» \fancyhf{} % borra todo lo que hay en las cabeceras y pies \fancyfoot[C]{\thepage} % Centramos el número de página en el pie \renewcommand{\headrulewidth}{0pt} % quita las lineas de separación \renewcommand{\footrulewidth}{0pt}}
Luego, en nuestro texto podemos llamar a esa definición de página. He añadido el siguiente contenido a nuestro fichero de ejemplos para ilustrarlo:
\pagebreak \thispagestyle{plain} En esta página no hay cabeceras ni pies, está totalmente en blanco, salvo el número de página centrado en el pie.
Como se puede apreciar, se utiliza el comando \thispagestyle
pasando
como parámetro el nombre del estilo de página que hemos definido.
Podemos, por tanto ajustar el diseño de la página también al contenido
o a nuestras necesidades.
Como siempre es muy aconsejable el mirar la documentación del paquete para conocer todos los parámetros.
Bibliografía
La bibliografía es uno de los apartados más importantes en cualquier tipo de documentación científica o de enseñanza. Documentarse correctamente y proporcionar los datos suficientes para que cualquier persona pueda seguir los razonamientos con una bibliografía completa es la mejor manera de conseguir sentar una buena base argumentativa. TeX en general, y LaTeX en particular, cuentan con una de las herramientas más potentes para crear y mantener bases de datos bibliográficas y poder citarlas desde nuestro texto.
En muchos entornos, como el universitario, el formato bib
para las
bases de datos bibliográficas, se ha convertido en un estándar. Un
fichero .bib
contiene, en texto plano, una serie de entradas con la
forma:
@tipo{etiqueta, propiedad1="valor1", propiedad2="valor2", ... }
Vamos, que así no parece que te sea de mucha utilidad la explicación, pero vamos a crear un fichero de bibliografía para comprobar cómo funciona. El contenido será el siguiente:
% Encoding: UTF-8 @book{Goossens, author="Michel Goossens and Frank Mittelbach and Alexander Samarin", title="The \LaTeX Companion", editor="Addison-Wesley", year="1993" } @book{Lamport, author="Leslie Lamport", title="\LaTeX", editor="Addison-Wesley", year="1996" } @Misc{minicurso, author = {Notxor}, note = {El minicurso consta de seis artículos consecutivos en el {\it blog}.}, title = {Minicurso de utilización de \LaTeX}, year = {2021}, url = {https://notxor.nueva-actitud.org/2021/03/20/minicurso-de-latex-para-psic%C3%B3logos.html}, }
El tipo del documento, en los dos primeros casos es book
, luego
utilizo un Misc
para poner una cita a una web, pero hay muchos
otro tipos de documentos article
, manual
, conference
... El dato
de la etiqueta le proporciona una forma de referirnos a esa entrada
por un nombre corto. En este caso, sólo hay dos entradas y el autor es
distinto, por lo que podemos utilizar el apellido del autor como única
etiqueta. Cuando la base de datos crece y hay autores que se repiten
─algo muy habitual─, podemos establecer un sistema de etiquetas tal
que autorAÑO
para que no haya conflictos entre entradas... O
cualquier otro sistema que proporcione un nombre único a la obra.
Hay herramientas que nos ayudan a crear y a mantener nuestras bases de
datos bibliográficas de una manera más visual y sencilla. En mi caso,
utilizo una herramienta llamada JabRef que resulta sencilla de
utilizar: échale un ojo. Hay muchas más, busca por Internet cuál se
ajusta a tu forma de trabajar... también puedes mantener la base de
datos editando el fichero bib
a mano, sin embargo, cualquier error
arruina toda la base de datos: una llave que se olvida, una coma que
falta, unas comillas que sobran. Depurar esos errores cuando lo
hacemos a mano puede ser complicado.
Como podemos ver en la captura de pantalla, tenemos nuestra lista de ficheros de base de datos divididos por pestañas. Cada pestaña contiene una lista de entradas, y cada entrada una lista de campos que se pueden rellenar.
Una vez realizada nuestra base de datos, vamos a ver cómo la podemos utilizar desde nuestro documento.
Para activar que se utilice una bibliografía necesitamos, como para casi todo, importar un paquete, establecer sus opciones y especificar la base de datos:
\usepackage[backend=biber,style=apa]{biblatex} \bibliography{biblio.bib}
El paquete biblatex
funciona dependiendo también de otras
herramientas externas. Tradicionalmente, se utiliza como backend
la
aplicación bibtex
o biblatex
. Sin embargo, hay más herramientas y
últimamente vengo utilizando biber
, porque me da la sensación de ser
algo más rápido a la hora de generar la bibliografía y las citas, pero
hay que recordar que dependerá de qué herramienta tengas instalada en
tu ordenador. El estilo de la bibliografía que utilizo es el apa
(American Psychological Associaton), que también depende de que
tengas instalado el correspondiente paquete en tu máquina.
Después de importar el paquete, necesitamos que se tenga en cuenta la
base de datos que estemos trabajando. En nuestro caso, como vimos
antes, creé un fichero de bibliografía con el nombre biblio.tex
y es
el que pasamos como parámetro al comando \bibliography
. Si
tuviéramos otras bases de datos, podemos referenciarlas también
añadiendo sus nombres separados por comas.
Para ilustrar cómo funciona el invento, además de añadir esos dos comandos en la cabecera del documento, hay que citar las obras en nuestro texto. Concretamente he añadido al final del documento lo siguiente:
\section{Uso de bibliografía}\label{sec:uso-biblio} Podemos citar, por ejemplo a un autor simplemente (\cite{Lamport}) o especificar también la página (\cite[pág. 23]{Goossens}) y después generar la bibliografía. Incluso referenciar este minicurso \cite{minicurso}. \printbibliography
Como se puede apreciar, la cita se realiza utilizando el comando
\cite{etiqueta}
, donde etiqueta
hace referencia al nombre único
que vimos que había que proporcionar al documento citado. Además
podemos utilizar un parámetro indicando, por ejemplo la página, que se
mostrará en el resultado.
Una vez que terminado el contenido, con todas las citas necesarias,
utilizaremos el comando \printbibliograpy
en el lugar donde queremos
que nos muestre la bibliografía.
El resultado obtenido quedaría así:
Como podemos ver, el comando \printbibliography
nos genera una nueva
sección sin numerar con la lista de los documentos que hayamos citado.
Al añadir la bibliografís sin numerar, no aparecerá en nuestro índice,
pero a mí me gusta que la bibliografía aparezca allí. Muchas veces
buscando información, no te interesa releer el contenido, que lo
puedes haber leído decenas de veces, y lo que necesitas es encontrar
rápidamente una determinada fuente bibliográfica. Por eso tengo la
costumbre de añadir a la tabla de contenidos una línea con la
bibliografía de la siguiente manera:
\addcontentsline{toc}{section}{Bibliografía} \printbibliography
Como se puede ver, \addcontentsline
añade una línea al bloque
toc
2 de categoría section
con el título Bibliografía
.
Conclusiones
¿Qué me he dejado en el tintero? Pues un montón de cosas. Hay cientos de paquetes muy interesantes y tratarlos todos necesitaría, no seis artículos sino un blog completo para verlo todo, aunque fuera por encima. Aunque este artículo es el final del minicurso, desde luego no es el final de LaTeX.
Podría haber hablado de las clases de documentos: artículo, libro, informe, carta, presentación, examen... Pero no todos necesitamos los mismos y es muy sencillo mirar la documentación y entender qué comandos son específicos de esa clase y cómo utilizarlos, una vez tenemos los conocimientos básicos.
Quizá podría haber hablado de otros aspectos y haber sacado del contenido otras. Sin embargo, creo que el minicurso es básico, pero suficientemente completo como para que te sientas cómodo utilizando LaTeX por tu cuenta, sin recurrir al clásico corta-pega de código de otros documentos sin llegar a comprender cómo funciona.
Comentarios