Al principio de mi proceso de escritura de tesis, decidí que quería tener un diseño de ‘1.5 columnas’. Es decir, quería tener un diseño con márgenes exteriores anchos donde pudiera colocar figuras pequeñas y notas laterales1. Las figuras grandes aún podían ir dentro del bloque de texto, mientras que las figuras aún más grandes podían usar tanto el bloque de texto como los márgenes. Es similar al diseño que se usa en el libro de Geometría Computacional de BCKO y en algunas revistas como PLOS ONE.

Figuras en los márgenes 1
Figuras en los márgenes 2

Mi razonamiento para esto era bastante simple: me gusta usar muchas figuras simples para explicar ideas, pero resultan en mucho espacio desperdiciado. Un bloque de texto angosto es más agradable de leer, pero de nuevo resulta en mucho espacio desperdiciado. Finalmente, amo las notas al pie, pero requieren que el lector vaya al fondo de la página para leerlas y luego que encuentre su lugar en el texto. Todos estos problemas pueden resolverse con un diseño de 1.5 columnas con notas al margen en lugar de notas al pie. ¿Pero cómo se hace un diseño así en LaTeX?

Tamaño de papel y construcción de página

El tamaño de papel B5 que se usa en la mayoría de las tesis en los Países Bajos es muy bueno, pero es un poco demasiado angosto para este tipo de diseño. Así que, entre los tamaños de papel disponibles en Lulu.com, decidí optar por algo más cuadrado: crown quarto, un formato de papel británico.

Luego me puse a leer un poco sobre la construcción de página, lo cual terminó tomando mucho tiempo sin dar mucha perspectiva sobre cómo manejar este tipo de diseño. Después de jugar un poco con diferentes proporciones, decidí seguir algunas reglas tipográficas: la altura del bloque de texto debería ser igual al ancho de la página, y la proporción entre los márgenes interno/superior y externo/inferior sería la proporción áurea2. Sin embargo, después de recibir una prueba impresa (y encuadernada), descubrí que los márgenes internos eran demasiado pequeños para una lectura cómoda. Así que los hice iguales a los márgenes externos para tomar en cuenta el espacio usado para el encuadernado y causar menos tensión en el libro. Después de jugar con diferentes valores, fijé arbitrariamente el ancho del espacio para notas al margen en 4 cm y el espacio entre las notas al margen y el bloque de texto en 0.4 cm. Todo esto se hizo usando el paquete geometry en el preámbulo así:

\usepackage[includemp,
            paperwidth=18.90cm,
            paperheight=24.58cm,
            top=2.170cm,
            bottom=3.510cm,
            inner=2.1835cm,
            outer=2.1835cm,
            marginparwidth=4cm,
            marginparsep=0.4cm]{geometry}

Sin embargo, debo notar que hay ciertos capítulos en los que ese diseño no tiene mucho sentido, como la bibliografía. Las páginas de título no centradas también se ven descuidadas. Así que, para configurar temporalmente un diseño diferente sin espacio para notas al margen en ciertos capítulos, usé:

\newgeometry{top=2.170cm,
            bottom=3.510cm,
            inner=2.1835cm,
            outer=2.1835cm,
            ignoremp}

Y después de tales capítulos:

\restoregeometry%

Encabezado y pie de página

En mi opinión, la clave para hacer que este tipo de diseño parezca deliberado en lugar de accidental es asegurarte de que tu encabezado (y pie) de página se extienda hasta el espacio usado por las notas al margen. Para esto, definí una longitud personalizada igual al ancho del bloque de texto, las notas al margen y el espacio entre ellos así:

\newlength{\overflowingheadlen}
\setlength{\overflowingheadlen}{\linewidth}
\addtolength{\overflowingheadlen}{\marginparsep}
\addtolength{\overflowingheadlen}{\marginparwidth}

Entonces, como usé koma-script, usé el paquete scrlayer-scrpage para crear encabezados y pies de página que se extendieran a esta longitud usando cajas invisibles:

\renewpagestyle{scrheadings}{
  {\hspace{-\marginparwidth}\hspace{-\marginparsep}\makebox[\overflowingheadlen][l]{\makebox[2em][r]{\thepage}\quad\rule{1pt}{100pt}\quad{}\leftmark}}%
  {\makebox[\overflowingheadlen][r]{\rightmark\quad\rule{1pt}{100pt}\quad\makebox[2em][l]{\thepage}}}%
  {}
}{
  {}%
  {}%
  {}
}
\renewpagestyle{plain.scrheadings}{
  {}%
  {}%
  {}%
}{
  {\thepage}%
  {\makebox[\overflowingheadlen][r]{\thepage}}%
  {}
}

Igual que antes, para los capítulos sin espacio para las notas al margen, tuve que configurar encabezados diferentes:

\cleardoublepage%
\renewpagestyle{scrheadings}{
  {\makebox[2em][r]{\thepage}\quad\rule{1pt}{100pt}\quad\leftmark}%
  {\hfill\rightmark\quad\rule{1pt}{100pt}\quad\makebox[2em][l]{\thepage}}%
  {}
}{
  {}%
  {}%
  {}
}
\renewpagestyle{plain.scrheadings}{
  {}%
  {}%
  {}%
}{
  {\thepage}%
  {\hfill\thepage}%
  {}
}

Figuras y tablas en los márgenes

Como quizás sepas, LaTeX proporciona \marginpar, un comando simple para agregar notas al margen. Mientras que la mayoría de la gente lo usa solo para texto, es posible agregar imágenes dentro del entorno marginpar usando \includegraphics. Sin embargo, no puedes agregar entornos flotantes como figure y table dentro de un marginpar. La solución aquí es usar el paquete caption, que te permite usar \captionsetup para especificar que cierto marginpar es en realidad una figura (o tabla). Como nota al margen, si le pasas la opción hypcap=true a caption, cargará el paquete hypcap para que los enlaces de hyperref vayan a la parte superior de la figura/tabla en lugar de a su leyenda.

Una figura marginal se puede configurar así:

\marginpar{
\captionsetup{type=figure}
\includegraphics[width=\marginparwidth]{figs/brep}
\caption{A cube represented as the 6 square faces that bound it}
\label{fig:brep}
}

Entornos marginales flotantes

Una desventaja del comando marginpar es que coloca notas y figuras justo al lado del texto donde se llama al comando. Aunque esto está bien cuando no tienes demasiadas cosas en los márgenes, las cosas pueden desbordarse al pie de la página e incluso fuera de la página cuando tienes demasiadas.

Esto es muy fácil de resolver, ya que el paquete marginfix hace flotar los entornos en los márgenes. Todo se colocará lo más cerca posible de donde lo declares, pero cuando sea necesario, las cosas se moverán hacia arriba o hacia abajo (o a la siguiente página) y nunca se colocarán fuera del espacio para notas al margen.

Para documentos grandes, también es buena idea permitir más flotantes sin procesar para que no obtengas errores de LaTeX si demasiadas cosas quedan sin colocar:

\extrafloats{100}

Notas al pie como notas laterales

Esto es simple. Para convertir todas las notas al pie en notas laterales, usé el paquete snotez así:

\usepackage[footnote]{snotez}
\setsidenotes{text-mark-format=\textsuperscript{\normalfont#1},
              note-mark-format=#1:,
              note-mark-sep=\enskip}

Figuras y tablas en el bloque de texto

Figuras con leyenda al margen

Con la configuración mencionada anteriormente, aún puedes usar los entornos usuales figure y table para poner figuras más grandes dentro del bloque de texto. Sin embargo, decidí hacer algo de personalización extra para usar el espacio marginal para las leyendas de tales figuras y tablas usando el paquete floatrow:

\floatsetup[figure]{margins=hangoutside,
                    facing=yes,
                    capposition=beside,
                    capbesideposition={center,outside},
                    floatwidth=\textwidth}
\floatsetup[table]{margins=hangoutside,
                   facing=yes,
                   capposition=beside,
                   capbesideposition={center,outside},
                   floatwidth=\textwidth}

Figuras y tablas grandes usando el bloque de texto y los márgenes

Figuras grandes usando el bloque de texto y el espacio marginal

Finalmente, configuré entornos para figuras y tablas grandes que usan todo el ancho del bloque de texto, el espacio de las notas al margen y la separación entre ellos. Esto también es fácil usando el paquete floatrow:

\floatsetup[widefigure]{margins=hangoutside,
                        facing=yes,
                        capposition=bottom}
\floatsetup[widetable]{margins=hangoutside,
                       facing=yes,
                       capposition=bottom}

Tales figuras y tablas se pueden crear usando los entornos figure* y table*. Por ejemplo, la figura del ejemplo anterior se crea así:

\begin{figure*}[tbp]
\centering
\includegraphics[width=\linewidth]{figs/konigsberg}
\caption[The Seven Bridges of K\"onigsberg]{The problem ...}
\label{fig:konigsberg}
\end{figure*}

Extender otras cosas al espacio marginal

También podrías querer permitir que otras cosas se extiendan al espacio marginal. Por ejemplo, tenía una sección con un montón de ecuaciones que podían mostrarse mucho más compactas si usaba el espacio marginal. Solo tuve algunos lugares donde esto era necesario, así que no me molesté en hacer un comando complejo que determinara si los márgenes exteriores estaban a la izquierda o a la derecha del bloque de texto.

Así que, con la ayuda de minipage y nuestro \overflowingheadlen definido anteriormente, para extender algo al margen exterior cuando está a la izquierda del bloque de texto, usé:

\blockmargin%
\hspace{-\marginparwidth}\hspace{-\marginparsep}\makebox[\overflowingheadlen][l]{
\begin{minipage}{\overflowingheadlen}
...
\end{minipage}
}
\unblockmargin%

Nota que \blockmargin y \unblockmargin son necesarios para evitar que otros entornos flotantes choquen con el minipage.

Extender cosas hacia el margen exterior cuando está a la derecha del bloque de texto es aún más simple. Solo elimina los \hspace negativos:

\blockmargin%
\makebox[\overflowingheadlen][l]{
\begin{minipage}{\overflowingheadlen}
...
\end{minipage}
}
\unblockmargin%

Advertencias

Esta configuración de ninguna manera es perfecta. Mi principal molestia es que si combinas figuras en los márgenes con figuras en el bloque de texto, puede que no se coloquen en el orden correcto, lo que requiere algunos ajustes manuales para resolverlo. Sin embargo, aún funciona bastante bien, incluso con subfiguras.

Otro aspecto a considerar con este diseño es el espaciado descuidado (sloppy spacing). A LaTeX realmente le desagradan los espaciados entre palabras grandes o desiguales. Esto normalmente está bien cuando el bloque de texto es suficientemente ancho, ya que hay bastante flexibilidad para tener un espaciado uniforme (siempre y cuando le ayudes a definir una separación silábica adecuada, p. ej. usando babel con la configuración de idioma correcta). Sin embargo, esto puede causar estragos con bloques de texto más angostos, incluyendo nuestras notas laterales. Mi solución para esto es usar espaciado descuidado con el comando \sloppy3. Para ayudar a romper las urls, también uso la opción breaklinks=true en hyperref y la opción hyphens en url así:

\PassOptionsToPackage{hyphens}{url}\usepackage[
            breaklinks=true]{hyperref}

Así que, si encontraste esto útil y tienes alguna idea sobre cómo mejorarlo, por favor házmelo saber.


  1. En lugar de notas al pie. 

  2. Me parece que la proporción 1:2 de koma-script es demasiada. 

  3. Sí, el espaciado descuidado es descuidado, pero el texto que se desborda fuera del bloque de texto es mucho más descuidado. Personalmente uso espaciado descuidado en cualquier diseño angosto, incluidos todos los diseños de dos columnas.