> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/es/formato/04-articles-how-to-change-paragraph-spacing-in-latex.md).

# Formato de párrafos

## Introducción

Este artículo explora dos métodos para realizar cambios en varios aspectos del espaciado entre párrafos:

* el método de mejores prácticas, y recomendado, de usar paquetes de LaTeX como [`setspace`](https://ctan.org/pkg/setspace) y [`parskip`](https://ctan.org/pkg/parskip) que proporcionan opciones y comandos a nivel de usuario para cambiar el espaciado de tus documentos de LaTeX;
* uso de TeX/LaTeX de bajo nivel *comandos de parámetros* para modificar el espaciado entre párrafos. El uso directo de comandos de parámetros puede eludir comprobaciones o controles proporcionados por paquetes de LaTeX cuidadosamente diseñados, lo que potencialmente puede dar lugar a consecuencias/efectos secundarios inesperados en otras partes de tu documento de LaTeX, así que úsalos con cuidado...

### Ir a secciones de interés

Lectores que buscan soluciones rápidas:

* ir a la sección [*Uso de paquetes de LaTeX: setspace y parskip*](#using-latex-packages-setspace-and-parskip)

Lectores interesados en comandos de bajo nivel:

* ir a las secciones [*Comandos de parámetros de TeX/LaTeX*](#using-texlatex-parameter-commands) y [*Los fundamentos: comandos de parámetros y ejemplos*](#the-fundamentals-parameter-commands-and-examples)

Lectores interesados en los detalles finos de los cálculos del interlineado y la estructura de los párrafos:

* ir a la sección [*Estructura de los párrafos y cálculos del interlineado*](#paragraph-structure-and-line-space-calculations)

## Uso de paquetes de LaTeX: setspace y parskip

* [El paquete parskip](#the-parskip-package)
* [El paquete setspace](#the-setspace-package)

### El paquete parskip

El [`parskip` paquete](https://ctan.org/pkg/parskip?lang=en) te ayuda a cambiar de forma segura el espacio insertado entre párrafos en tu documento. Está diseñado para garantizar que estructuras del documento como la tabla de contenido, los entornos de listas y los títulos en display no se vean afectadas negativamente por un valor distinto de cero de la [`\parskip` comando](#parskip-tex-primitive), que se usa para establecer la cantidad de espacio que TeX/LaTeX inserta entre párrafos.

El `parskip` El paquete no proporciona comandos a nivel de usuario; en su lugar, usa opciones del paquete para configurar sus acciones. El [`parskip` documentación](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/parskip/parskip.pdf) es breve, solo tres páginas, pero aquí tienes un breve resumen de las opciones del paquete:

* **`skip`**: especifica `\parskip`, el espacio vertical entre párrafos;
* **`tocskip`**: especifica un `\parskip` valor distinto de cero para usar en `\tableofcontents` y listas similares;
* **`indent`**: establece el valor de `\parindent`, la sangría del párrafo;
* **`parfill`**: ajusta el valor de `\parfillskip`, el pegamento añadido al final de la última línea de un párrafo.

De forma predeterminada, el `parskip` El paquete establece `\parindent` a `0pt` y proporciona un `\parskip` valor de `.5[\baselineskip](#baselineskip-tex-primitive) plus 2pt`.

#### ejemplos del paquete parskip

Los siguientes ejemplos muestran algunos usos del `parskip` paquete. Selecciona los enlaces “Open in Overleaf” para abrir y compilar los ejemplos usando Overleaf.

**Ejemplo mínimo del paquete parskip**

El siguiente ejemplo mínimo carga el `parskip` paquete y compone dos párrafos creados usando el [`blindtext` paquete](https://ctan.org/pkg/blindtext?lang=en). El ejemplo también compone los valores predeterminados de `\baselineskip`, `\parskip` y `\parindent`. La cantidad de espacio entre los dos párrafos está determinada por el valor de `\parskip`:

```latex
\documentclass{article}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=16cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carga el paquete blindtext para texto ficticio
\usepackage{blindtext}
% Carga el paquete parskip sin opciones
\usepackage{parskip}
\begin{document}

\blindtext[1]\par % Usa \par para forzar un nuevo párrafo
\blindtext[1]

El valor de \verb|\parindent| es \texttt{\the\parindent}. Aquí están los otros valores:

\begin{itemize}
\item El valor de \verb|\baselineskip| es \texttt{\the\baselineskip}
\item El valor de \verb|\parskip| es \texttt{\the\parskip}
\end{itemize}
\end{document}
```

&#x20;[Abrir este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+parskip+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+parskip+package+without+options%0A%5Cusepackage%7Bparskip%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cblindtext%5B1%5D%5Cpar+%25Use+%5Cpar+to+force+a+new+paragraph%0A%5Cblindtext%5B1%5D%0A%0AThe+value+of+%5Cverb%7C%5Cparindent%7C+is+%5Ctexttt%7B%5Cthe%5Cparindent%7D.+Here+are+the+other+values%3A%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+The+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D%0A%5Citem+The+value+of+%5Cverb%7C%5Cparskip%7C+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Ejemplo de uso del paquete de LaTeX parskip](/files/1358632279cae9328174f4d782eb09727dd139a8)

Nótese que `\parskip` el pegamento normalmente contiene un [componente de pegamento extensible](#a-few-notes-on-glue) porque eso ayuda a LaTeX a ajustar el contenido en la página y producir los mejores saltos de página (óptimos).

**Uso de las opciones del paquete parskip**

El siguiente ejemplo carga y configura las `parskip` paquete usando la `skip` y `indent` opciones. También compone dos párrafos, mediante la [`blindtext` paquete](https://ctan.org/pkg/blindtext?lang=en), y compone los valores de `\baselineskip`, `\parskip` y `\parindent`.

```latex
\documentclass{article}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carga el paquete blindtext para texto ficticio
\usepackage{blindtext}
% Carga el paquete parskip con las opciones skip e indent
\usepackage[skip=10pt plus1pt, indent=40pt]{parskip}
\begin{document}

\blindtext[1]\par % Usa \par para forzar un nuevo párrafo
\blindtext[1]

El valor de \verb|\parindent| se estableció mediante la opción \texttt{indent}, así que ahora es \texttt{\the\parindent}. Los otros valores son:

\begin{itemize}
\item \verb|\baselineskip| es \texttt{\the\baselineskip}
\item \verb|\parskip| se estableció mediante la opción \texttt{skip}, así que su valor es \texttt{\the\parskip}
\end{itemize}
\end{document}
```

&#x20;[Abrir este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+parskip+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+parskip+package+with+skip+and+indent+options%0A%5Cusepackage%5Bskip%3D10pt+plus1pt%2C+indent%3D40pt%5D%7Bparskip%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cblindtext%5B1%5D%5Cpar+%25+Use+%5Cpar+to+force+a+new+paragraph%0A%5Cblindtext%5B1%5D%0A%0AThe+value+of+%5Cverb%7C%5Cparindent%7C+was+set+via+the+%5Ctexttt%7Bindent%7D+option%2C+so+it+is+now+%5Ctexttt%7B%5Cthe%5Cparindent%7D.+The+other+values+are%3A%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D%0A%5Citem+%5Cverb%7C%5Cparskip%7C+was+set+via+the+%5Ctexttt%7Bskip%7D+option%2C+so+its+value+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Un segundo ejemplo de uso del paquete de LaTeX parskip](/files/88e912ae38806fd0d7789c1b5c899fd959184c14)

### El paquete setspace

El [`setspace` paquete](https://ctan.org/pkg/setspace?lang=en) proporciona comandos y entornos para cambiar el espaciado de las líneas de texto de tu documento. Aquí tienes un breve resumen de los principales comandos y entornos proporcionados por `setspace`:

* los comandos **`\singlespacing`**, **`\onehalfspacing`** y **`\doublespacing`** pueden usarse en el preámbulo del documento, o dentro del cuerpo del documento para cambiar el espaciado en parte, o en todo, el documento;
* el **`\setstretch{*cantidad de baselinestretch*}`** el comando establece un espaciado personalizado (mediante cambios en [`\baselinestretch`](#demonstrating-baselinestretch))—también puede usarse en el preámbulo del documento;
* los entornos **`singlespace`**, **`singlespace*`** **`onehalfspace`** y **`doublespace`** permiten cambiar el interlineado para partes seleccionadas del texto del documento;
* el **`\SetSinglespace{*valor*}`** el comando usa `*valor*` para ajustar el interlineado sencillo y acomodar el espaciado de líneas de texto compuesto con fuentes cuyos glifos son relativamente pequeños, o grandes, para el tamaño de punto dado. Consulta la sección [*Breves notas sobre fuentes y tamaño de punto*](#brief-notes-on-fonts-and-point-size) para una ilustración que demuestra la variación del tamaño de los glifos de una fuente para un tamaño de punto dado;
* el **`espaciado`** el entorno proporciona espaciado personalizado y requiere un argumento: el [`\baselinestretch` valor](#demonstrating-baselinestretch) que se debe usar; por ejemplo:

```latex
\begin{spacing}{2.5}
...
...
\end{spacing}
```

#### ejemplos del paquete setspace

Los siguientes ejemplos muestran algunos usos del `setspace` paquete: haz clic en los enlaces “Open in Overleaf” para abrir y compilar los ejemplos usando Overleaf.

**Uso de \doublespacing en el preámbulo del documento**

```latex
\documentclass{article}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carga el paquete blindtext para texto ficticio
\usepackage{blindtext}
% Carga el paquete setspace
\usepackage{setspace}
% Usando \doublespacing en el preámbulo
% cambia el texto a interlineado doble
\doublespacing
\begin{document}
\blindtext[1]
\end{document}
```

&#x20;[Abre este `setspace` ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+doublespacing+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%25+Using+%5Cdoublespacing+in+the+preamble+%0A%25+changes+text+to+double+line+spacing%0A%5Cdoublespacing%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Ejemplo del comando \doublespacing de setspace](/files/21ddcc0f1bf6c0cabb0ee0ba80f084c840e9f1e2)

**Uso del entorno spacing**

Como el siguiente código compone 3 páginas, es preferible ver la salida en Overleaf seleccionando el enlace “Open in Overleaf” que se proporciona a continuación.

```latex
\documentclass{article}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carga el paquete blindtext para texto ficticio
\usepackage{blindtext}
% Carga el paquete setspace
\usepackage{setspace}
% Usando \doublespacing en el preámbulo
% cambia el texto a interlineado doble
\doublespacing
\begin{document}
\blindtext[1]

Ahora, aplica un espaciado (personalizado) mayor aplicando un valor de \verb|\baselinestretch| de 3:

\begin{verbatim}
\begin{spacing}{3}
\blindtext[1]
\end{spacing}
\end{verbatim}

\begin{spacing}{2.5}
\blindtext[1]
\end{spacing}
Ahora, vuelve a \verb|\singlespacing|\singlespacing\blindtext[1]
\end{document}
```

&#x20;[Abre este `setspace` ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+various+setspace+commands\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%25+Using+%5Cdoublespacing+in+the+preamble+%0A%25+changes+text+to+double+line+spacing%0A%5Cdoublespacing%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D%0A%0ANow%2C+apply+a+larger+%28custom%29+spacing+by+applying+a+%5Cverb%7C%5Cbaselinestretch%7C+value+of+3%3A%0A%0A%5Cbegin%7Bverbatim%7D%0A%5Cbegin%7Bspacing%7D%7B3%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0A%5Cend%7Bverbatim%7D%0A%0A%5Cbegin%7Bspacing%7D%7B2.5%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0ANow%2C+revert+to+%5Cverb%7C%5Csinglespacing%7C%5Csinglespacing%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

**Uso del entorno singlespace\***

Como se señala en el artículo [*Breve nota sobre el interlineado*](https://texblog.org/2011/09/30/quick-note-on-line-spacing/), la `setspace` el paquete proporciona versiones con asterisco (`singlespace*`) y sin asterisco de la `singlespace` entorno. Los comentarios en el `setspace` código del paquete señalan que el `singlespace*` entorno está diseñado para “... proporcionar un espaciado vertical mejorado alrededor de los entornos itemize y quote”.

El siguiente ejemplo usa listas con viñetas contenidas en dos `minipage` entornos, colocados uno al lado del otro, para demostrar el diferente espaciado producido por el `singlespace` y `singlespace*` entornos.

```latex
\doublespacing
\blindtext[1]

\begin{minipage}{.4\textwidth}
\begin{singlespace}
Aquí hay una lista con viñetas\par (entorno \texttt{singlespace}).
\begin{itemize}
\item Uno
\item Dos
\item Tres
\end{itemize}
\end{singlespace}%
La lista ha terminado.
\end{minipage}\kern10pt%
\begin{minipage}{.4\textwidth}
\begin{singlespace*}
Aquí hay una lista con viñetas\par (entorno \texttt{singlespace*}).
\begin{itemize}
\item Uno
\item Dos
\item Tres
\end{itemize}
\end{singlespace*}
La lista ha terminado.
\end{minipage}
```

&#x20;[Abre este `setspace` ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+starred+singlespace+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cdoublespacing+%0A%5Cblindtext%5B1%5D%0A%0A%5Cbegin%7Bminipage%7D%7B.4%5Ctextwidth%7D%0A%5Cbegin%7Bsinglespace%7D%0AHere+is+a+bulleted+list%5Cpar+%28%5Ctexttt%7Bsinglespace%7D+environment%29.%0A%5Cbegin%7Bitemize%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bsinglespace%7D%25%0AThe+list+has+ended.%0A%5Cend%7Bminipage%7D%5Ckern10pt%25%0A%5Cbegin%7Bminipage%7D%7B.4%5Ctextwidth%7D%0A%5Cbegin%7Bsinglespace%2A%7D%0AHere+is+a+bulleted+list%5Cpar+%28%5Ctexttt%7Bsinglespace%2A%7D+environment%29.%0A%5Cbegin%7Bitemize%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bsinglespace%2A%7D%0AThe+list+has+ended.%0A%5Cend%7Bminipage%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Ejemplo del entorno singlespace\* de LaTeX](/files/21ab04c7adda4d843045fdbbc03f69e2444a11b4)

**Uso del comando \setstretch**

`\setstretch{*valor*}` establece el valor de `\baselinestretch` a *valor* y desencadena un *inmediato* cambio en `\baselineslip` causado por `\baselinestretch`. El siguiente ejemplo usa `\setstretch{1.618}`—el extraño valor de 1.618 se [explica más adelante en el artículo](#understanding-and-calculating-values-for-baselinestretch)...

```latex
% La extraña cifra de 1.618 se explica más adelante en el artículo.
\setstretch{1.618}
Escribimos \verb|\setstretch{1.618}| para provocar un cambio inmediato en el interlineado. Si escribiéramos \verb|\renewcommand{\baselinestretch}{1.618}|, el interlineado no se modificaría hasta que se utilice un comando de cambio de fuente, como \verb|\selectfont|.

\blindtext[1]
```

&#x20;[Abre este `setspace` ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+setstretch+command\&snip=%5Cdocumentclass%5B11pt%5D%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0A%25+The+strange+figure+of+1.618+is+explained+later+in+the+article.%0A%5Csetstretch%7B1.618%7D%0AWe+write+%5Cverb%7C%5Csetstretch%7B1.618%7D%7C+to+cause+an+immediate+change+to+the+line+spacing.+If+we+wrote+%5Cverb%7C%5Crenewcommand%7B%5Cbaselinestretch%7D%7B1.618%7D%7C+the+line+spacing+would+not+be+modified+until+a+font-changing+command%2C+such+as+%5Cverb%7C%5Cselectfont%7C%2C+is+used.%0A%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Ejemplo del comando \setstretch](/files/e49018684aae4f7058722e9c1039b7da363177b6)

**Uso del comando \SetSinglespace**

El siguiente proyecto se compila mediante LuaLaTeX y usa el `fontspec` paquete para acceder a las fuentes TeX Gyre Pagella. Compara dos párrafos de texto compuestos en TeX Gyre Pagella: el primer párrafo usa el interlineado sencillo predeterminado y el segundo tiene un interlineado sencillo mayor debido a aplicar `\SetSinglespace{1.1}`. Algunas personas pueden preferir el segundo párrafo, ligeramente “más abierto”, pues consideran que mejora la comodidad de lectura, pero eso, por supuesto, es una cuestión de preferencia personal.

```latex
\section*{Interlineado sencillo predeterminado de Computer Modern}
Texto normal. \blindtext[1]
\setmainfont{TeX Gyre Pagella}
\section*{Interlineado sencillo predeterminado de TeX Gyre Pagella}
Aquí hay algo de texto normal. \blindtext[1]
\section*{Interlineado sencillo ajustado de TeX Gyre Pagella}
Nota: necesitamos emitir \verb|\singlespacing| después de escribir
\verb|\SetSinglespace{1.1}|\SetSinglespace{1.1}\singlespacing
\begin{singlespace*}
Aquí hay algo de texto normal. \blindtext[1]
\end{singlespace*}
```

&#x20;[Abre este `setspace` ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Example+use+of+the+SetSinglespace+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csection%2A%7BComputer+Modern+default+single+spacing%7D%0ASome+regular+text.+%5Cblindtext%5B1%5D%0A%5Csetmainfont%7BTeX+Gyre+Pagella%7D%0A%5Csection%2A%7BTeX+Gyre+Pagella+default+single+line+spacing%7D%0AHere+is+some+regular+text.+%5Cblindtext%5B1%5D%0A%5Csection%2A%7BTeX+Gyre+Pagella+adjusted+single+line+spacing%7D%0ANote%3A+we+need+to+issue+%5Cverb%7C%5Csinglespacing%7C+after+writing++%0A%5Cverb%7C%5CSetSinglespace%7B1.1%7D%7C%5CSetSinglespace%7B1.1%7D%5Csinglespacing%0A%5Cbegin%7Bsinglespace%2A%7D+%0AHere+is+some+regular+text.+%5Cblindtext%5B1%5D%0A%5Cend%7Bsinglespace%2A%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Demostración del comando \SetSinglespace de LaTeX](/files/b9f6df462a3392a2359796eb06f0f02ab15faab2)

En la siguiente sección revisamos los comandos `\baselinestretch` y `\linespread`.

#### Entender \baselinestretch y \linespread

Parte del diseño de LaTeX para manejar el interlineado y los cambios de fuente (tamaño de fuente, familia de fuentes, codificación de fuente, etc.) hace uso de dos comandos que podrías encontrar:

* **`\baselinestretch`**: este comando almacena un factor de escala utilizado para multiplicar (escalar) el valor actual de [`\baselineskip`](#baselineskip-tex-primitive). Ese escalado normalmente se aplica *la próxima vez* se usa un comando de selección de fuente, como `\\selectfont`. Para cambiar el valor almacenado por `\baselinestretch` deberías escribir `\renewcommand{\baselinestretch}{*scale*}`
  * **Nota**: Si escribes `\renewcommand{\baselinestretch}{*scale*}` en el cuerpo del documento, el nuevo valor de `\baselinestretch` [no tendrá efecto inmediato](https://tex.stackexchange.com/questions/241120/why-does-changing-baselinestretch-not-change-line-spacing): el nuevo `*scale*` factor se almacena para uso futuro. Para usar/aplicar inmediatamente el nuevo`*scale*` valor, escribe `\\selectfont` como se demuestra en el [fragmento de código siguiente](#demonstrating-baselinestretch).
* **`\linespread{*scale*}`**: puede usarse para cambiar [`\baselineskip`](#baselineskip-tex-primitive) sin afectar el tamaño actual de la fuente. Este comando establece `\baselinestretch` a `*scale*` lo que posteriormente cambia `\baselineskip` a `*scale* × [\baselineskip](#baselineskip-tex-primitive)`. Sin embargo, ese escalado tampoco tiene lugar inmediatamente a menos que el `\linespread` comando se use en el preámbulo del documento. Si `\linespread` se usa en el cuerpo del documento, entra en vigor después de que se use el siguiente comando de tamaño/selección de fuente.

Con base en lo anterior, cualquiera de los dos:

* `\renewcommand{\baselinestretch}{*scale*}\selectfont` o,
* `\linespread{*scale*}\selectfont`

podría usarse para cambiar el interlineado, y ambos funcionarán a través de cambios en el tamaño de la fuente, como se demuestra en el ejemplo siguiente. Entonces, ¿cuál deberías usar? Consulta [esta breve discusión en tex.stackexchange](https://tex.stackexchange.com/a/241121).

**Demostrando \linespread**

El siguiente ejemplo usa `\linespread{2.5}` en el preámbulo del documento, lo que cambia el interlineado sin requerir comandos adicionales de selección de fuente:

```latex
\documentclass{article}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carga el paquete blindtext para texto ficticio
\usepackage{blindtext}
% Usar \linespread en el preámbulo cambia
% el interlineado sin requerir comandos adicionales
% de selección de fuente, como \selectfont
\linespread{2.5}
\begin{document}
\blindtext[1] % Las líneas se ven afectadas por \linespread{2.5}
\end{document}
```

&#x20;[Abrir este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+linestretch+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Using+%5Clinespread+in+the+preamble+changes+%0A%25+line+spacing+without+requiring+additional%0A%25+font-selection+commands%2C+such+as+%5Cselectfont%0A%5Clinespread%7B2.5%7D+%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D+%25+The+lines+are+affected+by+%5Clinespread%7B2.5%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Usando el comando linespread](/files/baccd01b1312055198aaf3c5b7f97f2f9ecea225)

Usar `\linespread{2.5}` en el cuerpo del documento (después de `\begin{document}`) *sería* requerir comandos de selección de fuente para activar el cambio en el interlineado. Abre el siguiente código en Overleaf y compara la salida con el ejemplo anterior:

```latex
Como el siguiente comando \verb|\linespread| se usa en el cuerpo del documento, se requiere un comando de selección de fuente para cambiar el interlineado. Descomenta \verb|\selectfont| para ver la diferencia:

\linespread{2.5}%\selectfont

% Sin \selectfont, los siguientes renglones del párrafo son
% no afectados afectados por \linespread{2.5}:
\blindtext[1]
```

&#x20;[Abrir este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Second+example+using+the+linestretch+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0ABecause+the+following+%5Cverb%7C%5Clinespread%7C+command+is+used+in+the+document+body%2C+a+font-selection+command+is+required+to+change+the+line+spacing.+Un-comment+%5Cverb%7C%5Cselectfont%7C+to+see+the+difference%3A%0A%0A%5Clinespread%7B2.5%7D%25%5Cselectfont%0A+%0A%25+Without+%5Cselectfont+the+following+paragraph+lines+are+%0A%25+unaffected+affected+by+%5Clinespread%7B2.5%7D%3A+%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![uso del comando LaTeX \linespread en el documento](/files/cd1a0233d07767df0d69d206a892a5c0b9f7a58a)

**Demostrando \baselinestretch**

El siguiente ejemplo demuestra `\baselinestretch` y `\\selectfont` para mostrar el/los efecto(s) correspondiente(s) sobre [`\baselineskip`](#baselineskip-tex-primitive):

```latex
El valor predeterminado de \verb|\baselineskip|=\the\baselineskip. Ahora actualiza \verb|\baselinestretch|\renewcommand\baselinestretch{2.5}. Sin embargo, aunque hemos ejecutado

\vspace{5pt}
\verb|\renewcommand\baselinestretch{2.5}|
\vspace{5pt}

\noindent aún no ha tenido ningún efecto: el nuevo valor de \verb|\baselinestretch| se almacena, pero no se aplica. Podemos emitir un comando \verb|\selectfont| para que el cambio surta efecto; pero, por ahora, el valor de \verb|\baselineskip| sigue siendo \the\baselineskip{} (sin cambios).

Si ahora ejecutamos \verb|\selectfont|, el cambio a \verb|\baselinestretch|, configurándolo en 2.5, surtirá efecto ahora—\selectfont incluso aunque estemos en medio de un párrafo. Ahora, el valor de \verb|\baselineskip| es \the\baselineskip{} (= \(2.5 \times 12=30\mathrm{pt}\)).

¿Qué ocurre si cambiamos el tamaño de la fuente a 14pt y \verb|\baselineskip| a 16pt usando los comandos \verb|\fontsize{14}{16}\selectfont|?

\fontsize{14}{16}\selectfont Ahora, \verb|\baselineskip| no es \textit{16pt} sino \the\baselineskip{} porque el valor de \verb|\baselinestretch| (2.5) se ha preservado y aplicado, dando \verb|\baselineskip| = \(2.5 \times 16=40\mathrm{pt}\).

\section{\texttt{\bfseries\string\linespread}}
El comando \verb|\linespread| puede usarse para modificar \verb|\baselineskip| sin cambiar el tamaño de la fuente.
```

&#x20;[Abrir este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demonstrating+baselinestretch\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D16cm%2Ctextwidth%3D14cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0AThe+default+value+of+%5Cverb%7C%5Cbaselineskip%7C%3D%5Cthe%5Cbaselineskip.+Now+update+%5Cverb%7C%5Cbaselinestretch%7C%5Crenewcommand%5Cbaselinestretch%7B2.5%7D.+However%2C+although+we+have+executed%0A%0A%5Cvspace%7B5pt%7D%0A%5Cverb%7C%5Crenewcommand%5Cbaselinestretch%7B2.5%7D%7C+%0A%5Cvspace%7B5pt%7D%0A%0A%5Cnoindent+it+%5Ctextit%7Bhas+not%7D+%28yet%29+had+any+effect%3A+the+new+value+of+%5Cverb%7C%5Cbaselinestretch%7C+is+stored%2C+but+not+actioned.+We+can+issue+a+%5Cverb%7C%5Cselectfont%7C+command+to+make+the+change+take+effect%3B+but%2C+for+now%2C+the+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+still+%5Cthe%5Cbaselineskip%7B%7D+%28unchanged%29.+%0A%0AIf+we+now+execute+%5Cverb%7C%5Cselectfont%7C+the+change+to+%5Cverb%7C%5Cbaselinestretch%7C%2C+setting+it+to+2.5%2C+will+now+take+effect---%5Cselectfont+even+though+we+are+in+the+middle+of+a+paragraph.+Now%2C+the+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+%5Cthe%5Cbaselineskip%7B%7D+%28%3D+%5C%282.5+%5Ctimes+12%3D30%5Cmathrm%7Bpt%7D%5C%29%29.%0A%0AWhat+happens+if+we+change+the+font+size+to+14pt+and+%5Cverb%7C%5Cbaselineskip%7C+to+16pt+using+the+commands+%5Cverb%7C%5Cfontsize%7B14%7D%7B16%7D%5Cselectfont%7C%3F+%0A%0A%5Cfontsize%7B14%7D%7B16%7D%5Cselectfont+Now%2C+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctextit%7Bnot%7D+16pt+but+%5Cthe%5Cbaselineskip%7B%7D+because+the+value+of++%5Cverb%7C%5Cbaselinestretch%7C+%282.5%29+has+been+preserved+and+applied%2C+giving+%5Cverb%7C%5Cbaselineskip%7C+%3D+%5C%282.5+%5Ctimes+16%3D40%5Cmathrm%7Bpt%7D%5C%29.%0A%0A%5Csection%7B%5Ctexttt%7B%5Cbfseries%5Cstring%5Clinespread%7D%7D%0AThe+%5Cverb%7C%5Clinespread%7C+command+can+be+used+to+modify+%5Cverb%7C%5Cbaselineskip%7C+without+changing+the+font+size.%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Demostrando baselinestretch](/files/b253243e223725f4896a9ea07c53a671e47bbf51)

#### ¿Cómo se define y cambia el “interlineado” en el paquete setspace?

El *precisa* definición, y *medición* de “interlineado” está abierta a interpretación, lo que puede dar lugar a diversas implementaciones dentro de sistemas/aplicaciones de software. Claramente, el `setspace` paquete tiene que asumir una definición operativa de interlineado para poder ofrecer compatibilidad con la composición de líneas “a un solo espacio” y “a doble espacio”, o cualquier otro múltiplo del interlineado. Pero, ¿qué variables modifica `setspace` para producir líneas con distintos niveles de espacio en blanco entre ellas?

Afortunadamente, [las discusiones en tex.stackexchange](https://tex.stackexchange.com/a/30106) y [comentarios en el código del paquete](https://tex.stackexchange.com/a/632830) aclaran cómo `setspace` implementa el espaciado entre líneas: establece el valor de `\baselineskip` usando un múltiplo del tamaño de punto de la fuente.

**Breves notas sobre fuentes y tamaño de punto**

Usar fuentes a un tamaño de punto particular significa aplicar un *factor de escala* a las formas de los caracteres (glifos) de esas fuentes; una vez escaladas según el tamaño de punto, el tamaño visible del carácter es una función del diseño de la fuente (tipografía). El tamaño de punto no tiene una relación universal e inamovible con el tamaño real mostrado de las formas de los caracteres dentro de las fuentes.

La siguiente imagen muestra letras minúsculas “abc” estilizadas usando 4 fuentes diferentes y todas *mostradas al mismo tamaño de punto*. Observa cómo el “tamaño” de estas letras minúsculas varía según el diseño de la fuente (tipografía) aunque todas están compuestas al *mismo* tamaño de punto:

![Varias fuentes al mismo tamaño de punto](/files/61ff17ac94f4adf4a9fffc21de1e1c5cd8ff8a31)

#### Espacio de una sola línea en el paquete setspace

Podemos usar [las discusiones en tex.stackexchange](https://tex.stackexchange.com/a/30106) como base para algunas explicaciones adicionales.

Un documento básico que usa la `article` clase tiene un tamaño de fuente de texto predeterminado de 10pt con un `\baselineskip` de 12pt. Con la opción \[11pt] o \[12pt], la clase article usa un tamaño de texto mayor y, en consecuencia, un valor mayor para `\baselineskip` como se muestra en la tabla siguiente:

| opción                   | tamaño de fuente            | $$\texttt{\baselineskip}$$ | $$\displaystyle\frac{\texttt{\baselineskip}}{\text{font size}}$$ |
| ------------------------ | --------------------------- | -------------------------- | ---------------------------------------------------------------- |
| \[10pt] (predeterminado) | 10pt                        | 12pt                       | 1.2                                                              |
| \[11pt]                  | 10.95pt$${}^{\textbf{\*}}$$ | 13.6pt                     | 1.24                                                             |
| \[12pt]                  | 12pt                        | 14.5                       | 1.21                                                             |

$${}^{\textbf{\*}}$$La razón del valor anómalo de `10.95pt`, y no exactamente `11pt`, se explica muy bien en esta [publicación de Reddit](https://www.reddit.com/r/LaTeX/comments/ihle9h/why_does_latex_use_1095pt_text_when_the_11pt/).

Como se muestra en la tabla, para cada combinación de tamaño de punto del texto y el valor predeterminado correspondiente (es decir, de interlineado sencillo) de `\baselineskip`, la proporción

$$\frac{\texttt{\baselineskip}}{\text{font size}}$$

es cercana a 1.2. Ese valor de proporción designa el interlineado sencillo y proporciona la base para los cálculos de interlineado usados por el `setspace` paquete.

**Entender y calcular valores para \baselinestretch**

Para lograr un múltiplo de interlineado particular como 1.5, 2, 3, etc., el `\baselinestretch` comando tiene que establecerse en valores aparentemente [“extraños”](https://tex.stackexchange.com/a/30106); por ejemplo mediante [usando la `\linespread` comando](https://texblog.org/2011/09/30/quick-note-on-line-spacing/). En esta sección echaremos un vistazo más de cerca a `\baselinestretch` para ver cómo surgen esos valores “extraños”.

Elijamos un documento con tamaño de fuente predeterminado de $$f$$ y \verb|\baselineskip| predeterminado, `\baselineskip` de $$\text{dbls}\_1$$donde el subíndice $${}\_1$$ implica el valor predeterminado de `\baselineskip` para el interlineado sencillo a tamaño de fuente $$f$$.

Vamos a ***definir*** el interlineado sencillo como la siguiente proporción a la que nos referiremos como $$\alpha\_f$$:

$$\frac{\text{dbls}\_1}{f}=\alpha\_f$$

Para un tamaño de fuente dado $$f$$, definamos también *definir* los siguientes valores de interlineado:

* un múltiplo de 1.5 de interlineado es *definido* como

$$\frac{\text{dbls}\_{1.5}}{f}=1.5$$

* un múltiplo de 2.0 de interlineado es *definido* como

$$\frac{\text{dbls}\_{2.0}}{f}=2.0$$

* un múltiplo, $$m$$, de interlineado es *definido* como

$$\frac{\text{dbls}\_{m}}{f}=m$$

Usando nuestro interlineado sencillo, definido por la proporción $$\alpha\_f$$, podemos escribir el siguiente “pseudocódigo” para calcular un valor `\baselinestretch` correspondiente a cualquier múltiplo de interlineado $$m$$:

$$\begin{align\*} \texttt{multi spacing } (m) &= \text{a constant } (\lambda) \times \texttt{single spacing}\ \frac{\text{dbls}\_{m}}{f}&=\lambda \times \alpha\_f\ m&=\lambda\alpha\_f\ \lambda&=\frac{m}{\alpha\_f}\kern5pt(\text{refer to }\lambda\text{ as }\texttt{\baselinestretch})\ \implies \texttt{\baselinestretch}&=\frac{m}{\alpha\_f} \end{align\*}$$

Usemos `11pt` texto (en realidad `10.95pt` ) y el valor predeterminado `\baselineskip` valor de `13.6pt` para calcular `\baselinestretch` para *doble* interlineado:

$$\begin{align\*} m&=2.0\ \texttt{\baselinestretch}&=\frac{2.0}{\alpha\_f}\ &=\frac{2.0}{\frac{\text{dbls}\_1}{f}}\ &=\frac{2.0}{\frac{13.6}{11}}\ &=2.0 \times \frac{11}{13.6}\ &=1.618\ \end{align\*}$$

El siguiente fragmento de código se usa en el `setspace` paquete para lograr `\doublespacing` cuando el tamaño de fuente es 11pt. Observa cómo el valor de `1.618`, según el cálculo anterior, se almacena en el comando `\baselinestretch`:

```latex
\newcommand{\doublespacing}{%
  \setstretch {1.667}%  predeterminado
  \ifcase \@ptsize \relax % 10pt
    \setstretch {1.667}%
  \or % 11pt
    \setstretch {1.618}%
  \or % 12pt
    \setstretch {1.655}%
  \fi
}
```

Usando un `article` clase de documento con la opción de fuente 11pt, el siguiente ejemplo compara `\doublespacing` con un `espaciado` entorno usando nuestro valor calculado de `1.618` para `\baselinestretch`. No sorprendentemente, los `\baselineskip` valores son idénticos (`22.00475pt`):

```latex
\begingroup
\doublespacing
\verb|\baselineskip|=\texttt{\the\baselineskip} (mediante \verb|\doublespacing|)

\blindtext[1]

\endgroup

\begin{spacing}{1.618}
\verb|\baselineskip|=\texttt{\the\baselineskip} (mediante \verb|\begin{spacing}{1.618})|

\blindtext[1]
\end{spacing}
```

&#x20;[Abrir este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demonstrating+baselinestretch+calculations\&snip=%5Cdocumentclass%5B11pt%5D%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D25cm%2Cpaperwidth%3D16cm%2Ctextwidth%3D14cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cusepackage%7Bblindtext%7D+%25+For+dummy+text.%0A%5Cbegin%7Bdocument%7D%0A%5Cbegingroup%0A%5Cdoublespacing%0A%5Cverb%7C%5Cbaselineskip%7C%3D%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D+%28via+%5Cverb%7C%5Cdoublespacing%29%7C%0A%0A%5Cblindtext%5B1%5D%0A%0A%5Cendgroup%0A%0A%5Cbegin%7Bspacing%7D%7B1.618%7D%0A%5Cverb%7C%5Cbaselineskip%7C%3D%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D+%28via+%5Cverb%7C%5Cbegin%7Bspacing%7D%7B1.618%7D%29%7C%0A%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![demostración de \baselinestretch](/files/e7a72ee9fa4cefff9a1579d67d0523e2beddfb9c)

Cálculos similares de `\baselinestretch` valores se aplican a otros tamaños de fuente y combinaciones de interlineado, como se enumera en las siguientes tablas:

![parámetros de setspace](/files/42f6ea7258a0b091afb832719d44dfad4cb49116)

## Uso de comandos de parámetros de TeX/LaTeX

Las siguientes secciones exploran varios comandos relacionados con el espaciado/formato de párrafos: algunos de esos comandos son *integrados en* motores de composición tipográfica de TeX, otros son macros de TeX/LaTeX. Los comandos integrados en los motores de TeX se conocen como *primitivas*, lo que significa que son *fundamental* y *irreducibles* porque, a diferencia de las macros, los primitivos no están construidos a partir de secuencias de otros comandos.

En particular, consideraremos varios primitivos *comandos de parámetros* compatibles con todos los motores de TeX, incluidos pdfTeX, XeTeX y LuaTeX. Los comandos de parámetros, ya estén relacionados con párrafos o no, se usan para *obtener el valor actual* del parámetro correspondiente, o *establecer ese parámetro a un nuevo valor*. Por ejemplo, el `\parskip` comando, un primitivo, determina el valor de un parámetro que controla la cantidad de espacio en blanco insertado entre dos párrafos compuestos tipográficamente.

Para *obtener* (aquí, para componer tipográficamente) el valor actual de `\parskip` escribirías:

```latex
\the\parskip
```

Para *set* el valor actual de `\parskip` a `1pt plus2pt` (una cola flexible) podrías escribir algo así:

```latex
\setlength{\parskip}{1pt plus2pt}
```

También analizamos algunos útiles *macros*comandos de TeX/LaTeX de nivel superior, escritos y construidos usando una secuencia de comandos constituyentes.

### Comandos usados para el espaciado de párrafos

Los siguientes comandos (primitivos y macros) pueden usarse para afectar el espaciado de párrafos. Algunos se exploran con más detalle y se puede acceder a ellos siguiendo el enlace desde el nombre del comando.

#### Comandos primitivos

* [`**\parindent**`](#parindent-tex-primitive): la cantidad de sangría (espacio en blanco) añadida a la primera línea de un párrafo.
* [`**\parskip**`](#parskip-tex-primitive): la cantidad de espacio en blanco flexible (“glue”) colocada entre párrafos.
* [`**\rightskip**`](#leftskip-and-rightskip-tex-primitives): espaciado flexible (glue) insertado a la derecha de cada línea en un párrafo.
* [`**\leftskip**`](#leftskip-and-rightskip-tex-primitives): espaciado flexible (glue) insertado a la izquierda de cada línea en un párrafo.
* [`**\baselineskip**`](#baselineskip-tex-primitive): el valor de este parámetro cumple dos funciones:
  * establece la distancia deseada entre las líneas base del texto en un párrafo;
  * se usa para calcular la cantidad (variable) de espacio (glue) añadida entre líneas para lograr la distancia deseada de línea base a línea base ([ver más adelante en el artículo](#how-the-space-glue-between-paragraph-lines-is-calculated)).
* [`**\lineskiplimit**`](#lineskip-and-lineskiplimit-tex-primitives): un parámetro cuyo valor define la distancia mínima aceptable entre dos líneas adyacentes de un párrafo.
* [`**\lineskip**`](#lineskip-and-lineskiplimit-tex-primitives): la cantidad de espacio (glue) insertada entre dos líneas de un párrafo si el `\baselineskip` glue calculado haría que las líneas quedaran demasiado juntas.
* `**\parfillskip**`: glue muy flexible añadido al final de la última línea de un párrafo para “llenarla” con espacio en blanco; para un ejemplo visual, consulta la ilustración en la sección [*Visualización de otros tipos de glue de párrafo*](#visualizing-other-types-of-paragraph-glue).

#### Comandos de macro

Los siguientes comandos de macro de TeX/LaTeX se usan a menudo para modificar el espaciado de párrafos:

* [`**\offinterlineskip**` y `**\nointerlineskip**`](#offinterlineskipandnointerlineskip): comandos que pueden usarse para desactivar el cálculo y la inserción de `\baselineskip` glue;
* [`**\baselinestretch**`](#understanding-and-calculating-values-for-baselinestretch): un comando que almacena un factor numérico usado para calcular el valor de `\baselineskip` cuando se selecciona una fuente. Tiene un valor predeterminado de 1;
* [`**\linespread**`](#demonstrating-linespread): este comando puede usarse para cambiar el valor actual de `\baselinestretch`.

### Espaciado flexible (glue)

Los motores de TeX logran efectos de espaciado, incluso dentro de los párrafos o entre ellos, mediante el uso de un espacio en blanco flexible llamado *glue* que puede estirarse o encogerse según la cantidad de espacio requerida. Si quieres aprender sobre el concepto de glue de TeX, puedes encontrar más detalles en los siguientes artículos de Overleaf:

* [Exploración de cajas underfull o overfull y cálculos de badness](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv)
* [Cómo TeX calcula los ajustes de glue en una \hbox](/latex/es/articulos-en-profundidad/24-how-tex-calculates-glue-settings-in-an-hbox.md)
* [Entender las advertencias de cajas underfull y overfull](/latex/es/base-de-conocimientos/138-understanding-underfull-and-overfull-box-warnings.md).

## Los fundamentos: comandos de parámetros y ejemplos

En esta sección explicamos varios comandos de parámetros relacionados con párrafos y proporcionamos ejemplos de su uso.

### \parindent (primitivo de TeX)

Este comando de parámetro establece la cantidad de sangría (espacio en blanco) añadida a la primera línea de un párrafo. Puede cambiarse usando el comando de LaTeX `\setlength` ; por ejemplo, para indentar párrafos en `15pt` set `\parindent` a `15pt` escribiendo:

```latex
\setlength{\parindent}{15pt}
```

Observa que:

* puedes cambiar `\parindent` dentro de un grupo, asegurando que su efecto quede limitado a los párrafos de ese grupo;
* `\parindent` puede ser negativo, produciendo una “sangría negativa” en lugar de una sangría;
* por defecto, LaTeX no sangra el primer párrafo que sigue a un encabezado de sección de documento (`\section{...}` etc.).

El siguiente ejemplo demuestra el uso de `\parindent`.

```latex
\documentclass{article}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Crear un comando para contener un párrafo de texto
\newcommand{\testpar}{\texttt{\string\parindent=\the\parindent\ }Cuando \TeX{} compone tipográficamente un párrafo trata cada carácter individual como una "caja" 2D con un ancho, altura y profundidad específicos.\par}
\begin{document}

% Establecer \parskip para poner 10pt entre párrafos
\setlength{\parskip}{10pt}

% Establecer el valor de \parindent a 0pt
\setlength{\parindent}{0pt}
\testpar

% Establecer el valor de \parindent a 10pt
\setlength{\parindent}{10pt}
\testpar

% Establecer \parindent en un grupo
{\setlength{\parindent}{50pt}\testpar}

% Ahora \parindent vuelve a ser 10pt
\testpar

% Sí, puedes tener un \parindent negativo
\setlength{\parindent}{-20pt}
\testpar
\end{document}
```

&#x20;[Abrir este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+paragraph+indentation\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Create+a+command+to+hold+a+paragraph+of+text%0A%5Cnewcommand%7B%5Ctestpar%7D%7B%5Ctexttt%7B%5Cstring%5Cparindent%3D%5Cthe%5Cparindent%5C+%7DWhen+%5CTeX%7B%7D+typesets+a+paragraph+it+treats+each+individual+character+as+a+2D+%60%60box%27%27+with+a+specific+width%2C+height+and+depth.%5Cpar%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%25+Set+%5Cparskip+to+put+10pt+between+paragraphs%0A%5Csetlength%7B%5Cparskip%7D%7B10pt%7D%0A%0A%25+Set+the+value+of+%5Cparindent+to+0pt%0A%5Csetlength%7B%5Cparindent%7D%7B0pt%7D%0A%5Ctestpar%0A%0A%25+Set+the+value+of+%5Cparindent+to+10pt%0A%5Csetlength%7B%5Cparindent%7D%7B10pt%7D%0A%5Ctestpar%0A%0A%25+Set+%5Cparindent+in+a+group%0A%7B%5Csetlength%7B%5Cparindent%7D%7B50pt%7D%5Ctestpar%7D%0A%0A%25+Now+%5Cparindent+is+again+10pt%0A%5Ctestpar%0A%0A%25+Yes%2C+you+can+have+a+negative+%5Cparindent%0A%5Csetlength%7B%5Cparindent%7D%7B-20pt%7D%0A%5Ctestpar%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Uso de varios valores de sangría de párrafo en LaTeX](/files/9303123c9b32f6123cb161f6f595ecea5902c2fc)

### \parskip (primitivo de TeX)

La legibilidad del texto puede mejorarse separando los párrafos con una cantidad de espacio en blanco que variará según cierta estética de diseño. TeX/LaTeX permiten a los usuarios controlar ese espaciado entre párrafos mediante el `\parskip` comando de parámetro.

* **Consejo del `parskip` paquete**: El [paquete parskip](https://ctan.org/pkg/parskip) aconseja que modificar directamente `\parskip` puede “provocar espacios verticales en lugares inesperados” (dentro de un documento LaTeX). El `parskip` paquete intenta corregir problemas de espaciado que podrían surgir por cambios en el valor de `\parskip`—como dentro de tablas de contenido y entornos de listas. Véase también la sección del paquete de este artículo [`parskip` To manually set the current value of](#the-parskip-package).

Para establecer manualmente el valor actual de `\parskip` usa el `\setlength` comando de LaTeX; por ejemplo, para separar párrafos por 3pt puedes escribir:

```latex
\setlength{\parskip}{3pt}
```

El siguiente ejemplo demuestra el uso de `\parskip`:

```latex
\documentclass{article}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Crear un comando para contener un párrafo de texto
\newcommand{\testpar}{\noindent El valor actual de \texttt{\string\parskip} es \texttt{\the\parskip}. Cuando \TeX{} compone tipográficamente un párrafo trata cada carácter individual como una "caja" 2D~con un ancho, altura y profundidad específicos.\par}
\begin{document}
\testpar
% Establecer \parskip a 5pt
\setlength{\parskip}{5pt}\testpar
% Establecer parskip a 10pt
\setlength{\parskip}{10pt}\testpar
% Establecer \parskip a 25pt (pero en un grupo)
{\setlength{\parskip}{25pt}\testpar}
% El grupo termina, ahora \parskip vuelve a ser 10pt
\testpar
% Sí, puedes tener un \parskip negativo
\setlength{\parskip}{-20pt}\testpar
\end{document}
```

&#x20;[Abrir este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+parskip+settings\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Create+a+command+to+hold+a+paragraph+of+text%0A%5Cnewcommand%7B%5Ctestpar%7D%7B%5Cnoindent+The+current+value+of+%5Ctexttt%7B%5Cstring%5Cparskip%7D+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D.+When+%5CTeX%7B%7D+typesets+a+paragraph+it+treats+each+individual+character+as+a+2D%7E%60%60box%27%27+with+a+specific+width%2C+height+and+depth.%5Cpar%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctestpar%0A%25+Set+%5Cparskip+to+5pt+%0A%5Csetlength%7B%5Cparskip%7D%7B5pt%7D%5Ctestpar%0A%25+Set+parskip+to+10pt%0A%5Csetlength%7B%5Cparskip%7D%7B10pt%7D%5Ctestpar%0A%25+Set+%5Cparskip+to+25pt+%28but+in+a+group%29%0A%7B%5Csetlength%7B%5Cparskip%7D%7B25pt%7D%5Ctestpar%7D%0A%25+Group+ends%2C+now+%5Cparskip+is+again+10pt%0A%5Ctestpar%0A%25+Yes%2C+you+can+have+a+negative+%5Cparskip%0A%5Csetlength%7B%5Cparskip%7D%7B-20pt%7D%5Ctestpar%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Demostración del uso de \parskip en LaTeX](/files/abbc48f774b7edbf5683b43dab5c04de8c14e2f0)

#### \parskip flexible

Tradicionalmente, `\parskip` no es un *valor* fijo, lo que resultaría en la misma cantidad de espacio entre todos los párrafos. En su lugar, `\parskip` suele definirse como un “espacio flexible” (llamado glue) que permite a TeX estirar o encoger el espacio entre párrafos, ayudando a ajustar el contenido en la página y a encontrar un lugar “bueno” para un salto de página.

Para hacer `\parskip` flexible, lo escribirías en forma de una especificación de glue:

`\setlength{\parskip}{*cantidad fija* **plus** *cantidad para estirar* **minus** *cantidad para encoger*}`

donde `**plus**` y `**minus**` estás *campo* usado por TeX/LaTeX para identificar la *cantidad para estirar* o *cantidad para encoger* contenidas en una especificación de glue. El artículo de Overleaf [*Exploración de cajas underfull o overfull y cálculos de badness*](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv) contiene una discusión más detallada sobre glue.

Por ejemplo, para permitir que `\parskip` varíe entre `3 + 1 = 4pt` y `3 — 1 = 2pt` podrías escribir

```latex
\setlength{\parskip}{3pt plus1pt minus1pt}
```

### \leftskip y \rightskip (primitivos de TeX)

Los motores de TeX proporcionan dos comandos de parámetros que añaden espacio (glue) a la izquierda y a la derecha de cada línea en el párrafo compuesto tipográficamente. Como sugieren sus nombres:

* `\leftskip` inserta espacio (glue) a la izquierda de cada línea en un párrafo;
* `\rightskip` inserta espacio (glue) a la derecha de cada línea en un párrafo.

Los siguientes ejemplos usan `\leftskip` y `\rightskip` para modificar directamente la alineación del párrafo; sin embargo... los cambios en la alineación del texto suelen lograrse mejor mediante entornos o paquetes apropiados de LaTeX—por ejemplo, consulta el [artículo de Overleaf sobre alineación de texto](/latex/es/formato/06-text-alignment.md). Aunque demostramos el comportamiento de algunos comandos de parámetros de bajo nivel (primitivos) proporcionados por los motores de TeX, en general es aconsejable usar paquetes de LaTeX apropiados siempre que sea posible.

#### Hacer que \leftskip sea fijo y \rightskip flexible

El siguiente ejemplo produce dos párrafos: el primero usa los valores predeterminados de LaTeX para `\leftskip` y `\rightskip` y el segundo párrafo se compone tipográficamente usando las siguientes configuraciones:

```latex
\leftskip 10pt
\rightskip 0pt plus 1 fill
```

Abre el siguiente proyecto de Overleaf para ver el resultado:

```latex
\documentclass{article}
\title{Segundo ejemplo de leftskip y rightskip}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Establecer el valor de algunos parámetros relacionados con párrafos
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Un archivo TeX generado que define las macros
% \mytextA y \mytextB, cada uno contiene el texto de un párrafo.
% Componer un párrafo con los valores predeterminados de \leftskip y \rightskip

\mytextB

% Establecer \leftskip y \rightskip a nuevos valores
\leftskip 10pt
\rightskip 0pt plus 1fill
\vspace{8pt}

% Ahora volver a componer el mismo párrafo
\mytextB

\end{document}
```

&#x20;Abre este ejemplo como un proyecto LaTeX de Overleaf

Este ejemplo genera la siguiente salida:

![Estableciendo el glue \leftskip en LaTeX](/files/c7cb87c64d89568096da2811b8806e3d4b9a6225)

El siguiente gráfico es una versión anotada del segundo párrafo producido por el ejemplo anterior. Está diseñado para resaltar y mostrar la cantidad de `\leftskip` y `\rightskip` glues insertados en las líneas del párrafo, junto con el `\parindent` espacio para la primera línea:

![Estableciendo el glue \leftskip en LaTeX](/files/4a3c4909298df6c51fa1a6be4ef90e917efbcfe4)

Nótese que `\leftskip` glue tiene un tamaño fijo (10pt) pero `\rightskip` glue se ha estirado para proporcionar cualquier cantidad de espacio en blanco requerida para llenar el lado derecho de cada línea. Esta “flexibilidad” se debe a la especificación de `\rightskip` que contiene `plus 1 fill`—proporcionando una forma de glue “infinitamente estirable”.

#### Hacer que \rightskip sea fijo y \leftskip flexible

El siguiente ejemplo produce dos párrafos: el primero usa los valores predeterminados de LaTeX para `\leftskip` y `\rightskip` y el segundo párrafo se compone tipográficamente usando las siguientes configuraciones:

```latex
\leftskip 0pt plus 1 fill
\rightskip 10pt
```

Abre el siguiente proyecto de Overleaf para ver el resultado:

```latex
\documentclass{article}
\title{Ejemplos de leftskip y rightskip}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Establecer el valor de algunos parámetros relacionados con párrafos
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Un archivo TeX generado que define las macros
% \mytextA y \mytextB, cada uno contiene el texto de un párrafo.
% Componer un párrafo con los valores predeterminados de \leftskip y \rightskip

\mytextB

% Establecer \leftskip y \rightskip a nuevos valores
\rightskip 10pt
\leftskip 0pt plus 1fill
\vspace{8pt}

% Ahora volver a componer el mismo párrafo
\mytextB

\end{document}
```

&#x20;Abre este ejemplo como un proyecto LaTeX de Overleaf

Este ejemplo genera la siguiente salida:

![Estableciendo el glue \rightskip en LaTeX](/files/00600dcbe8cdc822c925ba968bf26793598d6938)

El siguiente gráfico es una versión anotada del segundo párrafo producido por el ejemplo anterior. Está diseñado para resaltar y mostrar la cantidad de `\leftskip` y `\rightskip` glues insertados en las líneas del párrafo, junto con el `\parindent` espacio para la primera línea:

![Estableciendo el glue \rightskip en LaTeX](/files/e2718c9126e6265dd0fbc2bafdcc4edbc9daee45)

Nótese que `\rightskip` glue tiene un tamaño fijo (10pt) pero `\leftskip` glue se ha estirado para proporcionar cualquier cantidad de espacio en blanco requerida para llenar el lado izquierdo de cada línea. Esta “flexibilidad” se debe a la especificación de `\leftskip` que contiene `plus 1 fill`—proporcionando una forma de glue “infinitamente estirable”.

#### Estableciendo \leftskip y \rightskip a valores flexibles

El siguiente ejemplo produce dos párrafos: el primero usa los valores predeterminados de LaTeX para `\leftskip` y `\rightskip` y el segundo usa las siguientes configuraciones de glue, flexibles:

```latex
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
```

Estas configuraciones hacen que las líneas del párrafo queden centradas:

```latex
\documentclass{article}
\title{Ejemplos de leftskip y rightskip}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight==16cm,paperwidth==12cm,textwidth=8cm]{geometry}
% Establecer el valor de algunos parámetros relacionados con párrafos
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Un archivo TeX generado que define las macros
% \mytextA y \mytextB que definen el texto para dos párrafos
% Componer un párrafo con los valores predeterminados de \leftskip y \rightskip

\mytextB

% Establecer \leftskip y \rightskip con configuraciones de glue "extremadamente flexibles"
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\vspace{20pt}

% Ahora volver a componer el mismo párrafo
\mytextB

\end{document}
```

&#x20;Abre este ejemplo como un proyecto LaTeX de Overleaf

Este ejemplo genera la siguiente salida:

![Ejemplo que muestra \leftskip y \rightskip](/files/2754c732ee37bfdab4cb1c39d01276c59563b210)

El siguiente gráfico es una versión anotada del segundo párrafo producido por el ejemplo anterior. Está diseñado para resaltar y mostrar la cantidad de `\leftskip` y `\rightskip` glues insertados en las líneas del párrafo, junto con el `\parindent` espacio para la primera línea:

![Ejemplo que muestra \leftskip y \rightskip](/files/e35d76cd20cb543144c8f13d675f69d71da75882)

Ten en cuenta que ambos `\leftskip` y `\rightskip` se especifican como `0pt plus 1fill` haciéndolos igualmente “infinitamente flexibles”; en consecuencia, se estiran la misma cantidad, lo que hace que las líneas compuestas tipográficamente queden centradas.

#### Estableciendo \leftskip y \rightskip en un grupo

El siguiente ejemplo muestra cómo hacer cambios temporales en `\leftskip` y `\rightskip` encerrándolos dentro de un grupo. En nuestro ejemplo el grupo se crea mediante `\begingroup`... `\endgroup`, como se muestra en el siguiente fragmento de código:

```latex
\begingroup
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\mytextB
\endgroup
```

El primer párrafo se compone tipográficamente usando glue “extremadamente flexible” para `\leftskip` y `\rightskip`:

```latex
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
```

pero el segundo párrafo usa los valores predeterminados de LaTeX:

```latex
\documentclass{article}
\title{Otro ejemplo de leftskip y rightskip}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Establecer el valor de algunos parámetros relacionados con párrafos
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Un archivo TeX generado que define las macros
% \mytextA y \mytextB que definen el texto para dos párrafos
% Aquí cambiamos \leftskip y \rightskip a configuraciones de glue "extremadamente flexibles"
% dentro de un grupo creado por \begingroup ... \endgroup

\begingroup
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\mytextB
\endgroup

% Ahora volver a componer el mismo párrafo después de que el grupo se haya cerrado
% haciendo que \leftskip y \rightskip vuelvan a sus valores anteriores

\vspace{20pt}
\mytextB

\end{document}
```

&#x20;Abre este ejemplo como un proyecto LaTeX de Overleaf

Este ejemplo genera la siguiente salida:

![Uso de \leftskip y \rightskip en un grupo](/files/ef7a285d2ba171e3025e1d6f98736c74e02ec8d5)

**Nota**: Los ajustes de (efectos de) `\leftskip` y `\rightskip` se restringen al párrafo dentro del grupo creado por `\begingroup`... `\endgroup`. Después de que el grupo se haya cerrado, el siguiente párrafo se compone tipográficamente usando los valores predeterminados de LaTeX para `\leftskip` y `\rightskip`.

### \baselineskip (primitivo de TeX)

En general, la práctica tipográfica aceptada es que las líneas de texto dentro de los párrafos deben estar espaciadas uniformemente, salvo donde ciertas líneas contengan elementos grandes, como matemáticas o una imagen, que hacen imposible conservar un espaciado interlineal constante para esas líneas.

TeX/LaTeX proporcionan comandos y mecanismos que permiten a los usuarios ejercer cierto grado de control sobre el espaciado entre líneas. Uno de esos comandos es `\baselineskip` que obtiene, o establece, el valor de un parámetro que determina el espaciado interlineal preferido (distancia de línea base a línea base) en un párrafo compuesto tipográficamente.

Para componer tipográficamente el valor actual de `\baselineskip` puedes escribir

```latex
\the\baselineskip
```

Para establecer `\baselineskip` a algún `valor` (una longitud de LaTeX como `pt`) puedes escribir

```latex
\setlength{\baselineskip}{value}
```

Por ejemplo, para establecer `\baselineskip` a `12pt` puedes escribir

```latex
\setlength{\baselineskip}{12pt}
```

Podemos demostrar el papel de `\baselineskip` usando el siguiente párrafo (típico):

![Un párrafo de LaTeX de ejemplo](/files/b56d54bf0acc82587aa1d8e165b6ed956c722a15)

y añadiendo anotaciones que muestran la distancia de línea base a línea base controlada por `\baselineskip`:

![Un párrafo de LaTeX de ejemplo anotado para mostrar distancias entre líneas base](/files/9747264c7065a717b51b7b22f336c573241db811)

El diagrama también muestra el “glue” interlineal: una cantidad calculada de espacio en blanco añadida entre líneas—lo analizaremos más adelante en el artículo.

#### \baselineskip y otros parámetros

`\baselineskip` es uno de los cuatro parámetros básicos que controlan la cantidad de espacio insertado entre las líneas de un párrafo; los demás son:

* `\lineskip`
* `\lineskiplimit`
* `\prevdepth`

Más adelante en el artículo exploraremos [*cómo se usan estos cuatro parámetros*](#paragraph-structure-and-line-space-calculations) para calcular los valores del glue interlineal.

#### ejemplo de \baselineskip (espacio fijo)

El siguiente ejemplo se abre en Overleaf para crear un proyecto que contiene un archivo llamado `text.tex` que define los comandos `\mytextA` y `\mytextB`—ambos comandos componen tipográficamente un párrafo. Por conveniencia, el proyecto de Overleaf usa un tamaño de página pequeño porque eso ayuda a preparar gráficos e imágenes para esta página de ayuda.

```latex
\documentclass{article}
\title{Demostración de baselineskip}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Establecer el valor de algunos parámetros relacionados con párrafos (vamos a discutir estos)
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
% Establecer el valor de \baselineskip---cambia el valor para ver el efecto
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Un archivo TeX generado que define las macros
% \mytextA y \mytextB, cada uno de los cuales compone tipográficamente un párrafo

% Primero, componer tipográficamente dos párrafos con el \baselineskip predeterminado
\mytextA\mytextB

% Ahora cambia \baselineskip a un valor mayor y compón
% otro párrafo
\setlength{\baselineskip}{24pt}
\mytextA

\end{document}
```

&#x20;Abre este ejemplo como un proyecto LaTeX de Overleaf

Este ejemplo genera la siguiente salida:

![Explorando baselineskip en TeX o LaTeX](/files/6667ee00e782986f8183dee83f49c34b318393cc)

El párrafo en la página 2 tiene líneas muy espaciadas porque `\baselineskip` se estableció en 24pt.

#### ejemplo de \baselineskip (espacio flexible)

El siguiente ejemplo especifica un `\baselineskip` valor que tiene un componente de estiramiento extremadamente flexible (llamado “infinito”):

```latex
\baselineskip=12pt plus1fil
```

Debido a esta flexibilidad, el espacio en blanco entre las líneas del párrafo puede estirarse por cualquier cantidad necesaria para llenar la página. Tal flexibilidad daría como resultado párrafos con cantidades muy distintas de espacio entre sus líneas de texto constituyentes, lo que podría no ser estéticamente agradable ni fácil de leer.

```latex
\documentclass{article}
\usepackage{blindtext}
\title{Demostración flexible de \texttt{\string\baselineskip}}
\author{Overleaf}
\date{Enero de 2022}

\begin{document}

\maketitle
Proporcionaremos a \verb|\baselineskip| un componente de “estiramiento” muy flexible asignándole el valor \texttt{12pt plus1fil}: \verb|\baselineskip=12pt plus1fil|.\baselineskip=12pt plus1fil
\section{Introducción}
Añade un párrafo que ahora se estirará para llenar la página. \blindtext

\end{document}
```

&#x20;[Abrir este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Flexible+baselineskip+demo\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Ctitle%7BFlexible+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+demo%7D%0A%5Cauthor%7BOverleaf%7D%0A%5Cdate%7BJanuary+2022%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cmaketitle%0AWe%E2%80%99ll+provide+%5Cverb%7C%5Cbaselineskip%7C+with+a+very+flexible+%60%60stretch%27%27+component+by+assigning+the+value+%5Ctexttt%7B12pt+plus1fil%7D%3A+%5Cverb%7C%5Cbaselineskip%3D12pt+plus1fil%7C.%5Cbaselineskip%3D12pt+plus1fil+%0A%5Csection%7BIntroduction%7D%0AAdd+a+paragraph+that+will+now+stretch+to+fill+the+page.+%5Cblindtext%0A%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Demostración del glue de baselineskip con flexibilidad infinita](/files/b25dbd2980e91bb6151be001ea27bc4ed516b4ed)

**Algunas notas sobre glue**

Algunas de las siguientes notas están tomadas del artículo de Overleaf [explorando cajas subllenas o sobrellenas y cálculos de maldad](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv), reproducido aquí por conveniencia.

El espacio en blanco que TeX inserta entre líneas de un párrafo, `\baselineskip`, es una forma de espaciado flexible llamada *glue*. Un valor de glue puede especificarse en tres componentes:

* a *valor* cantidad;
* una cantidad que puede *estirarse*;
* una cantidad que puede *encogerse*,

En consecuencia, un `\baselineskip` valor puede especificarse así:

`\baselineskip`=*cantidad fija* **más** *cantidad para estirar* **menos** *cantidad para encoger*

donde

* **más** y **menos** son palabras clave que los motores de TeX entienden;
* *cantidad fija* se denomina el *componente normal* del glue (también llamado el *ancho natural* del glue);
* *cantidad para estirar* se denomina el *componente de estiramiento* del glue;
* *cantidad para encoger* se denomina el *componente de encogimiento* del glue.

El *cantidad fija* se requiere para todos los valores de glue, pero *cantidad para estirar* y *cantidad para encoger* ambos son opcionales—si falta uno o ambos, se establecen en un valor de 0.

Generalmente, `\baselineskip` el glue se especifica con un *cantidad fija* solo, los componentes de estiramiento y encogimiento son cero; de lo contrario, las líneas del párrafo tendrían un espaciado irregular (variable), lo que podría no ser estéticamente agradable.

### \offinterlineskip y \nointerlineskip (macros)

Estas macros se usan a menudo para evitar la inserción de glue entre líneas de un párrafo. Los lectores interesados en más detalles pueden saltar adelante a las secciones relevantes del artículo que explican cómo funcionan estas macros.

* **`\offinterlineskip`**: Véase la sección del artículo [*Glue interlineal de tamaño cero: \offinterlineskip*](#zero-sized-interline-glue-offinterlineskip).
* **`\nointerlineskip`**: Véase la sección del artículo [*Prevención del glue interlineal: \prevdepth y \nointerlineskip*](#preventing-interline-glue-prevdepth-and-nointerlineskip).

## Estructura de los párrafos y cálculos del interlineado

Usando las capacidades de LuaTeX es posible [posprocesar un párrafo compuesto](https://www.overleaf.com/latex/examples/luatex-parsing-typeset-paragraphs/mzbpwxtjshsj) para visualizar los límites de los caracteres constituyentes (glifos), líneas y glues a partir de los cuales está construido. Comenzaremos con una breve secuencia de gráficos para ayudar a visualizar el modelo de “cajas y glue” que usan los motores de TeX para componer el texto contenido en un párrafo.

### Estructura del párrafo

Cuando TeX compone un párrafo trata los caracteres individuales como cajas diminutas, cada una con su propio ancho, altura y profundidad, y esos anchos de las cajas de caracteres se usan para calcular las ubicaciones óptimas de los saltos de línea. Además, los caracteres de espacio contenidos dentro del texto, y usados para separar palabras individuales, se convierten en una forma de espacio flexible (glue) que proporciona el espaciado necesario para lograr cada salto de línea.

La siguiente secuencia de 7 gráficos muestra los componentes principales de un párrafo compuesto: varios tipos de cajas y glue. El primer gráfico muestra un párrafo compuesto junto con una versión anotada que resalta varios elementos dentro del párrafo. Sin embargo, el párrafo anotado contiene mucha información, por lo que los gráficos siguientes aíslan varios componentes para (con suerte) hacerlos más fáciles de entender.

![Paragraphanatomy1b.png](/files/ffa6d228051c0b95e52d1b02300c248a9d4d3312)

* El siguiente gráfico muestra las líneas del párrafo como cajas grises separadas por glue representado por franjas verdes horizontales. Ese glue se calcula para asegurar que la distancia de línea base a línea base sea igual a (es decir, el valor de) `\baselineskip`:

![Paragraphanatomy2b.png](/files/fa5431b92560c61595c8550cc093996c07935de7)

* La siguiente imagen representa los caracteres compuestos como cajas: para visualizar cómo procesan los motores de TeX los caracteres con el fin de producir saltos de línea:

![Paragraphanatomy3.png](/files/ea924b0c5a9c66088358410283981fba7b860c59)

* La siguiente imagen muestra cajas dentro de cajas: las líneas más grandes del párrafo (cajas) que contienen cajas más pequeñas (caracteres individuales):

![Paragraphanatomy5.png](/files/9e203b5c2b5654fb9648eb76ee83192cad7be725)

* La siguiente imagen muestra la cantidad de espacio entre palabras en cada línea: estos espacios entre palabras se producen convirtiendo los caracteres de espacio en glues flexibles que se estiran o se encogen para producir la longitud correcta de cada línea de texto. Observa cuidadosamente que el tamaño de estos espacios varía de línea a línea:

![Paragraphanatomy4.png](/files/a181110040b49451020c117463173341c28cc9bc)

* La siguiente imagen combina las cajas de caracteres y los glues correspondientes (espacios) colocados entre palabras individuales:

![Paragraphanatomy6.png](/files/13cdef1e0857437edf20945f2a87a687436e28c0)

### Visualización de otros tipos de glue de párrafo

Los siguientes párrafos también se compusieron y procesaron usando LuaTeX para mostrar otros tipos de glue dentro y entre un par de párrafos. Ten en cuenta que `\rightskip` y `\leftskip` ambos están establecidos en 0pt, por lo que no se muestran:

* **`\parskip`** glue (azul claro) colocado entre los dos párrafos compuestos;
* las palabras individuales están separadas por ***glue entre palabras*** (amarillo) creado convirtiendo los caracteres de espacio del texto de entrada en espacio en blanco de tamaño variable (glue) en la salida compuesta. El glue que surge de los espacios entre palabras se estira o se encoge para lograr saltos de línea visualmente agradables;
* **`\baselineskip`** glue (verde claro) colocado entre líneas: la cantidad exacta de `\baselineskip` glue se calcula usando el mecanismo que se comenta a continuación;
* **`\lineskip`** glue (rojo) que se usa en el segundo párrafo—debido a la caja baja contenida en la penúltima línea;
* **`\parfillskip`** glue (verde oscuro) colocado al final de la última línea en cada párrafo.

![](/files/4544259d6b0167093650c0a8338bc24ecdab59ae)

### Tratando con líneas (cajas) más profundas (o más altas)

Como muestran los gráficos en la [sección anterior](#paragraph-structure), un párrafo compuesto es una pila vertical de “cajas”, separadas por algo de espacio en blanco, que TeX llama “glue”. A medida que se procesa el párrafo y se apilan las líneas individuales (cajas), la lista vertical (pila) crece en una *hacia abajo* dirección, hacia la parte inferior de la página. Aunque TeX/LaTeX intentan garantizar que las líneas del párrafo se apilen con líneas base separadas por una distancia constante de `\baselineskip`, no siempre es posible lograrlo porque ciertas líneas pueden tener una altura o profundidad mayor de lo habitual.

La altura y profundidad de cada línea del párrafo viene determinada por la distancia máxima que el contenido de esa línea se extiende por encima o por debajo de la línea base; en consecuencia, los párrafos que contienen material con una altura o profundidad relativamente grande, como matemáticas en línea o gráficos, es probable que produzcan líneas individuales con alturas y/o profundidades correspondientemente grandes. Para tales líneas, es posible que TeX/LaTeX no pueda apilarlas de modo que sus líneas base queden separadas de las otras líneas por la `\baselineskip` cantidad. Claramente, TeX/LaTeX necesitan un “mecanismo de respaldo” para tratar esas líneas *calculando* una cantidad adecuada de espacio para insertar entre cada par de líneas afectadas por grandes alturas y/o profundidades.

#### \lineskip y \lineskiplimit (primitivas de TeX)

Ese mecanismo de respaldo involucra los comandos de parámetros `\lineskip` y `\lineskiplimit` junto con un tercer parámetro llamado `\prevdepth`. Los lectores interesados en más detalles pueden saltar adelante a la sección del artículo [*Cómo se calcula el espacio (glue) entre líneas de un párrafo*](#how-the-space-glue-between-paragraph-lines-is-calculated).

El proyecto de ejemplo, a continuación, compone un solo párrafo cuya última línea tiene una profundidad relativamente grande debido a una caja de texto desplazada (`\hbox`). El párrafo se compone usando estos ajustes:

```latex
\setlength{\baselineskip}{12pt}
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
```

Usa el enlace debajo del siguiente código para abrir un proyecto de Overleaf:

```latex
\documentclass{article}
% Usar un tamaño de página convenientemente pequeño
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Establece algunos parámetros importantes
\setlength{\baselineskip}{12pt}
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
% Archivo de entrada que define \testpar
\input testpar.tex
\title{Un párrafo de ejemplo para lineskip}
\begin{document}
\testpar % Una macro creada en el proyecto de Overleaf
\end{document}
```

&#x20;[Abre este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%25+Use+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Set+some+important+parameters%0A%5Csetlength%7B%5Cbaselineskip%7D%7B12pt%7D%0A%5Csetlength%7B%5Clineskip%7D%7B3.5pt%7D%0A%5Csetlength%7B%5Clineskiplimit%7D%7B2pt%7D%0A%5Csetlength%7B%5Cparindent%7D%7B20pt%7D%0A%25+Input+file+defining+%5Ctestpar+%0A%5Cinput+testpar.tex%0A%5Ctitle%7BA+sample+paragraph+for+lineskip%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctestpar+%25+A+macro+created+in+the+Overleaf+project%0A%5Cend%7Bdocument%7D\&snip_name\[]=testpar.tex\&snip\[]=%5Cnewcommand%7B%5Ctestpar%7D%7B%5CTeX%7B%7D+uses+the+name+%60%60glue%27%27+to+describe+%60%60flexible+white+space%27%27+used+to+separate+any+typeset+item+which+can+appear+on+the+page.+For+example%2C+individual+words%2C+and+whole+lines%2C+within+a+typeset+paragraph+are+seperated+by+%60%60glue%27%27.+%5CTeX%7B%7D+engines+identify+%28give+a+name+to%29+different+types+of+glue+according+to+where+it+is+being+used.+For+example%2C+each+line+is+separated+by+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+glue+or%2C+occasionally%2C+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue%2C+depending+on+%5CTeX%27s+calculations.+Let%27s+trigger+use+of+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue+by+adding+an+%5Ctexttt%7B%5Cstring%5Chbox%7D+which+has+a+large+depth+due+to+the+%5Ctexttt%7B%5Cstring%5Clower%7D+command%3B+for+example%2C+the+box%0A+%5Clower5pt%5Chbox%7BLOW+BOX%7D+will+cause+%5CTeX%7B%7D+to+insert+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue+instead+of+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+glue.%5Cpar%7D\&main_document=main.tex)

Este ejemplo produce la siguiente salida:

![Ejemplo para demostrar el glue de \lineskip](/files/15425f7dbf186d62466e38dc8b1c640a8f58084a)

El siguiente gráfico usa una versión anotada del párrafo producido por el proyecto de Overleaf anterior. Aquí, hacemos zoom para centrarnos en la última línea del párrafo, indicando el uso de `\lineskip` glue (mostrado en rojo) causado por la profundidad de la caja de texto desplazada:

![Imagen que muestra el glue \lineskip de TeX](/files/f8e58bfabea15aa87990aa90d82ebb79ce263057)

La línea final del texto del párrafo tiene una profundidad mayor de lo habitual, lo que impide que TeX mantenga la distancia constante de línea base a línea base especificada por el valor `\baselineskip` (12pt). Como indican las flechas en el lado derecho del gráfico, TeX/LaTeX intentan garantizar una distancia fija (12pt) entre pares de líneas—el valor de `\baselineskip`. Sin embargo, para el último par de líneas TeX las ha separado por una cantidad mayor que 12pt y usa el valor de `\lineskip` para el glue interlineal en lugar de un valor calculado usando `\baselineskip`.

Las siguientes secciones exploran y explican los detalles de los cálculos de TeX sobre los valores de glue interlineal.

### Cómo se calcula el espacio (glue) entre líneas de un párrafo

Para los propósitos actuales *muy brevemente* mencionaremos el proceso de construcción de página de TeX, aunque de manera muy simplificada. Una vez que TeX ha terminado de componer un párrafo, completando la partición silábica y determinando los saltos de línea, puedes pensar en esos datos del párrafo como almacenados en una ubicación temporal de memoria. Luego TeX necesita mover esos datos del párrafo, línea por línea, a una nueva ubicación de memoria que almacena material destinado a la página de salida actual.

Cuando TeX mueve los datos del párrafo, línea por línea, está, en efecto, construyendo una pila vertical de líneas (cajas de TeX) que crece *hacia abajo* hacia la parte inferior de la página. A medida que mueve las líneas del párrafo a la página actual, TeX intenta garantizar que esas líneas estarán espaciadas por igual, teniendo un espaciado vertical (línea base a línea base) constante igual al valor `\baselineskip`. Cuando una nueva línea se transfiere a la página actual, el motor de TeX registra temporalmente la *profundidad* de esa línea porque se usará para calcular la cantidad de glue interlineal (espacio en blanco) entre esa línea y la línea colocada después de ella.

#### Cálculos del tamaño del glue

Comencemos resumiendo las características de espaciado interlineal proporcionadas por los motores de TeX:

* mantener una distancia constante entre líneas base, una distancia igual a `\baselineskip`;
* proporcionar espaciado para cualquier línea con una altura o profundidad relativamente grandes;
* la capacidad de desactivar la inserción de glue interlineal, ya sea automáticamente o bajo control del usuario. Por ejemplo:
  * Los motores de TeX desactivan automáticamente la inserción de glue interlineal después de una regla en modo vertical;
  * las macros `\offinterlineskip` y `\nointerlineskip` permiten a los usuarios desactivar temporalmente la inserción de glue interlineal—esas macros tienen efectos distintos, como veremos más abajo.

La decisión de añadir o no glue interlineal y, si es así, cuánto de cada tipo, funciona así:

* ¿Debe añadirse glue interlineal? TeX decide esto comprobando si la *profundidad de la última línea añadida* a la lista es menor que el valor especial de `–1000pt` (puntos). Ten en cuenta que `–1000pt` es un valor “centinela” arbitrario utilizado internamente por los motores de TeX.
  * **Nota**: El valor de “profundidad de la última línea añadida”, que TeX registra internamente, también se conoce como “profundidad previa”. Los motores de TeX proporcionan el comando de parámetro `\prevdepth`—que, en ciertas circunstancias, puede usarse para *obtener* o *set* el valor de “profundidad previa”. La macro `\nointerlineskip` hace uso de `\prevdepth`.
* TeX comprueba si `la profundidad de la línea anterior es mayor que –1000pt`?
  * ***Sí, lo es*** (hay que añadir glue):
    * calcula el valor Δ, donde Δ = \baselineskip – (profundidad de la línea anterior) – (altura de la siguiente línea)
    * compara Δ con el valor de `\lineskiplimit`, un parámetro usado para definir la distancia mínima aceptable entre dos líneas, medida como la distancia entre la parte inferior de la línea superior y la parte superior de la línea inferior.
    * Si Δ < `\lineskiplimit`:
      * las líneas están demasiado cerca, así que inserta el espaciado mínimo aceptable, que es `\lineskip`
    * Si Δ >= `\lineskiplimit`:
      * las líneas no están demasiado cerca, así que usa Δ como la cantidad de glue a insertar
  * ***No, no lo está*** (no añadas glue):
    * Añade la siguiente línea (caja) sin insertar ningún glue

El siguiente gráfico resume el proceso de glue interlineal:

![Cómo TeX determina los valores de glue interlineal](/files/4993890cc32ae2e72a40737d01e8abf2a8d70d0d)

### Un ejemplo de cálculos de glue interlineal

En el siguiente ejemplo suponemos que TeX/LaTeX está usando los siguientes valores de parámetros de comando:

```latex
\baselineskip=12pt
\lineskip=3.5pt
\lineskiplimit=2pt
```

Vamos a examinar el cálculo del glue interlineal para las dos primeras líneas de este párrafo:

![OLV2glue-calcs-step0.png](/files/b23c7d1860c68e946805f8524b3a0f91486b6f54)

En la siguiente imagen, el motor de TeX ha procesado la primera línea del párrafo y la ha movido a la lista vertical que está construyendo. Lleva un registro de la profundidad de esa línea (`d<sub>1</sub>`) que es `2.1528` (puntos):

![OLV2glue-calcs-step1.png](/files/e188ffa6fccec89e4941866b17bc6896073bc8f0)

A continuación, TeX está listo para añadir una segunda línea a la lista que está construyendo: esa línea tiene una altura (`h<sub>2</sub>`) que es `6.9444` (puntos) y, por cierto, una profundidad, `d<sub>2</sub>` de `0` (puntos):

![OLV2glue-calcs-step2.png](/files/e45f78368d1fb20181d3c7034fa95e51d36a2856)

En este punto, TeX necesita calcular la cantidad de espacio (glue, `g<sub>1</sub>`) para insertar entre estas dos líneas:

![OLV2glue-calcs-step3.png](/files/14dac837d89029e220f8960fbae762549becccfe)

La siguiente imagen muestra los cálculos de glue para este par de líneas:

![OLV2glue-calcs-stepA3.png](/files/2033f2339b14c083261a3552ea582836054ea6b8)

La imagen final muestra las dos líneas trasladadas a la página actual con la cantidad calculada de glue interlineal colocada entre ellas:

![OLV2glue-calcs-step5.png](/files/38d2b423ea1ddc5ba8cf6c2f501a46df6021f001)

### Otro parámetro más: \prevdepth

Como se señaló arriba, cuando TeX está creando una pila vertical (lista) de cajas, almacena la profundidad de la última caja añadida a esa lista. Ese valor de profundidad almacenado se conoce como la “profundidad previa”, a la que se puede acceder mediante el comando de parámetro `\prevdepth`.

El `\prevdepth` el comando puede usarse ***solo*** cuando TeX está en modo vertical; es decir, entre párrafos o dentro de cajas verticales: `\vbox`, `\vtop` o `\vcenter` (nota: `\vcenter` las cajas solo pueden usarse en modo matemático).

`\prevdepth` proporciona acceso de lectura y escritura al valor de la “profundidad previa”:

* para acceder en lectura al valor actual de `\prevdepth` puedes escribir:

```latex
\the\prevdepth
```

* para establecer el valor actual de `\prevdepth` a `algún valor`, una longitud en puntos, mm, etc., puedes escribir:

```latex
\setlength{\prevdepth}{algún valor}
```

Si intentas usar \verb`\prevdepth` en circunstancias para las que no fue diseñado, como dentro de un párrafo o dentro de una `\hbox` obtendrás un error

```latex
Uso incorrecto de \prevdepth.
```

con información adicional que te indica que solo puede usarse en modo vertical.

#### Prevención del glue interlineal: \prevdepth y \nointerlineskip

Un uso de `\prevdepth` es *impedir* que TeX realice los cálculos de línea base utilizados para añadir glue interlineal entre elementos de una lista vertical, como las líneas de un párrafo. Usando `\prevdepth` para representar `profundidad de la línea anterior` podemos reformular los cálculos de glue (mostrados arriba) de la siguiente manera:

```latex
if(\prevdepth > –1000pt)
{
     Δ = \baselineskip — \prevdepth — (altura de la línea actual)

     if(Δ < \lineskiplimit)
       glue interlineal = \lineskip
     de lo contrario
       glue interlineal = Δ
}
de lo contrario
{
     Apila la caja sin añadir
     ningún glue interlineal
}
```

Internamente, los motores de TeX reconocen un valor llamado “centinela” de `\prevdepth` que puede usarse para desactivar el cálculo y la adición de glue interlineal. Ese valor centinela es `–1000pt`, que puede verse en la primera línea del pseudocódigo anterior:

```latex
if(\prevdepth > –1000pt)
```

TeX no añadirá glue interlineal a menos que `\prevdepth` sea mayor que `–1000pt`— lo que proporciona el mecanismo utilizado por la `\nointerlineskip` macro para evitar que se añada glue de línea base entre el siguiente par de cajas en una lista vertical.

`\nointerlineskip` tiene una definición equivalente a:

```latex
\def\nointerlineskip{
\prevdepth–1000pt
}
```

Nótese que `\nointerlineskip` proporciona una *desactivación puntual* de los cálculos de glue interlineal porque el valor de `\prevdepth` se actualiza continuamente a medida que se añaden nuevas cajas a la lista vertical actual, como se demuestra en el siguiente ejemplo:

```latex
\noindent Las siguientes \verb|\hbox|es se procesan cuando \TeX{} está en el llamado \textit{modo vertical externo}. Después del procesamiento (composición), estas cajas se añaden a la página actual y se apilan verticalmente con glue interlineal insertado entre ellas:

\hbox{j}
\hbox{p}
\hbox{g}

Ahora, inmediatamente después de la caja \verb|\hbox{j}|, establecemos \verb|\prevdepth| en \texttt{-1000pt}, lo que impide que se coloque glue interlineal entre las cajas \verb|\hbox{j}| y \verb|\hbox{p}|:

\hbox{j}\setlength{\prevdepth}{-1000pt}
\hbox{p}
\hbox{g}

Observa que sí se coloca glue interlineal entre las cajas \verb|\hbox{p}| y \verb|\hbox{g}| porque el valor de \verb|\prevdepth| se actualiza después de que \verb|\hbox{p}| se procesa y se añade a la lista: el valor de \verb|\prevdepth| pasa a ser la profundidad de la caja \verb|\hbox{p}|. Cuando \verb|\hbox{g}| se añade a la lista vertical, el valor de \verb|\prevdepth| ya no es \texttt{-1000pt}; en consecuencia, ahora puede añadirse glue interlineal.
```

&#x20;[Abrir este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=One-shot+use+of+nointerlineskip\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D10cm%5D%7Bgeometry%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cbaselineskip%7D%7B14pt%7D%0A%5Csetlength%7B%5Cparskip%7D%7B1pt%7D%0A%5Csetlength%7B%5Cparindent%7D%7B0pt%7D%0A%25+A+convenience+macro+to+typeset+%5Cprevdepth+in+an+%5Chbox%2C+although+TeX+has+to+be%0A%25+in+a+vertical+mode+when+this+macro+is+used.%0A%5Cnoindent+The+following+%5Cverb%7C%5Chbox%7Ces+are+processed+when+%5CTeX%7B%7D+is+in+so-called+%5Ctextit%7Bouter+vertical+mode%7D.+After+processing+%28typesetting%29%2C+these+boxes+are+appended+to+the+current+page+and+stacked+vertically+with+interline+glue+inserted+between+them%3A%0A%0A%5Chbox%7Bj%7D%0A%5Chbox%7Bp%7D%0A%5Chbox%7Bg%7D%0A%0ANow%2C+immediately+after+after+the+box+%5Cverb%7C%5Chbox%7Bj%7D%7C%2C+we+set+%5Cverb%7C%5Cprevdepth%7C+to+%5Ctexttt%7B-1000pt%7D+which+prevents+interline+glue+being+placed+between+the+boxes+%5Cverb%7C%5Chbox%7Bj%7D%7C+and+%5Cverb%7C%5Chbox%7Bp%7D%7C%3A+%0A%0A%5Chbox%7Bj%7D%5Csetlength%7B%5Cprevdepth%7D%7B-1000pt%7D%0A%5Chbox%7Bp%7D%0A%5Chbox%7Bg%7D%0A%0AObserve+that+interline+glue+%5Ctextit%7Bis%7D+placed+between+the+boxes+%5Cverb%7C%5Chbox%7Bp%7D%7C+and+%5Cverb%7C%5Chbox%7Bg%7D%7C+because+the+value+of+%5Cverb%7C%5Cprevdepth%7C+is+updated+after+%5Cverb%7C%5Chbox%7Bp%7D%7C+is+processed+and+added+to+the+list%3A+the+value+of+%5Cverb%7C%5Cprevdepth%7C+becomes+the+depth+of+the+box+%5Cverb%7C%5Chbox%7Bp%7D%7C.+When+%5Cverb%7C%5Chbox%7Bg%7D%7C+is+added+to+the+vertical+list+the+value+of+%5Cverb%7C%5Cprevdepth%7C+is+no+longer+%5Ctexttt%7B-1000pt%7D%3B+consequently%2C+interline+glue+can+now+be+added.%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Ejemplo que demuestra el parámetro \prevdepth de TeX](/files/c7206e9a53e59729c3c719639537b8475f9e3672)

#### Glue interlineal de tamaño cero: \offinterlineskip

Es posible eliminar todo el espaciado interlineal mediante el comando macro `\nointerlineskip`, que tiene una definición equivalente a:

```latex
\def\offinterlineskip{%
\baselineskip=-1000pt
\lineskip=0pt
\lineskiplimit=\maxdimen
}
```

Nótese que `\maxdimen` es `16383.99998pt`, la mayor longitud que TeX puede usar.

El siguiente gráfico muestra los cálculos básicos del glue interlineal y los distintos valores de parámetros usados por la macro `\nointerlineskip`:

![offinterlineskip](/files/79eaf4cc77015cc7a0fda1e03c9e4dfaf1e6cb60)

El siguiente gráfico muestra el fragmento de pseudocódigo que resulta de sustituir los `\nointerlineskip` valores de la macro en los cálculos de glue. Demuestra cómo la `\nointerlineskip` macro funciona estableciendo valores para `\baselineskip` y `\lineskiplimit` de modo que el glue interlineal siempre será `\lineskip` glue de `0pt`.

![offinterlineskip](/files/5b73a6ba0cf054ba876a7259cf35e7c070a75855)

#### \offinterlineskip y \lineskip no nulo

El `\nointerlineskip` la macro establece `\lineskip` a cero, pero, como demuestra el siguiente proyecto de Overleaf, puedes combinar `\nointerlineskip` con valores no nulos de `\lineskip` para lograr efectos de espaciado de líneas.

```latex
\documentclass{article}
\title{Demostrando \lineskip no nulo}
% Elige un tamaño de página convenientemente pequeño
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
\begin{document}

\offinterlineskip % Esto establece \lineskip en 0pt

\setlength{\lineskip}{5pt} % Queremos \lineskip no nulo

\input text.tex % Un archivo TeX generado que define las macros
% \mytextA y \mytextB, cada una de las cuales compone un párrafo

\mytextA % Compone un párrafo

% Ahora cambia \lineskip a un valor de glue flexible y compón
% otro párrafo

\setlength{\lineskip}{5pt plus5pt minus5pt}

\mytextA

\end{document}
```

&#x20;Abre este ejemplo como un proyecto LaTeX de Overleaf

Este ejemplo genera la siguiente salida:

![Demostrando la macro \offinterlineskip de LaTeX](/files/c8f843eef0f02f9fc9b46f44294e85b3c113573e)

Puedes localizar el efecto o efectos de usar `\offinterlineskip` y `\lineskip` (y otros comandos de espaciado) encerrándolos en un grupo:

```latex
\begingroup
\offinterlineskip
\setlength{\lineskip}{5pt}
...tu(s) párrafo(s) aquí

\endgroup
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/es/formato/04-articles-how-to-change-paragraph-spacing-in-latex.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
