> 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/conceptos-basicos-de-latex/04-lists.md).

# Listas

## Tres formas de insertar listas en Overleaf

Overleaf ofrece 3 formas de crear listas usando LaTeX:

1. Use **Insertar lista con viñetas** (![Image of the menu icon for insert a bulleted list in Overleaf](/files/c31db20e06dbdc0c98b6d2dcd6ea5bda7cb09c7c)) o **Insertar lista numerada** (![Image of the menu icon for insert a numbered list in Overleaf](/files/1b300067f0715f01e6ed94923420a59e1a41d5a4)) en la barra de herramientas del editor para insertar listas en **Editor visual** o **Editor de código**.
2. [Pegue una lista con formato en **Editor visual**](/latex/es/base-de-conocimientos/075-how-to-paste-formatted-content-into-overleaf.md#pasteformattedlist).
3. Escriba su propio código LaTeX usando **Editor de código**.

Las opciones 1 y 2 están diseñadas para generar automáticamente el código LaTeX necesario para maquetar listas. Sin embargo, para quienes quieran escribir su propio código LaTeX, la opción 3 podría ser la elección preferida. Ofrece la mayor flexibilidad y es el enfoque principal de este artículo.

## Introducción

Este artículo ofrece una introducción a la composición tipográfica y a la personalización de varios tipos de listas en LaTeX:

* la `itemize` entorno para crear una lista con viñetas (sin ordenar)
* la `enumerate` entorno para crear una lista numerada (ordenada)
* la `descripción` entorno para crear una lista de descripciones

Maquetar listas es un tema amplio porque las listas de LaTeX son *extremadamente* configurables, lo que permite crear una enorme variedad de tipos y estructuras de lista. Repasaremos y mostraremos algunos métodos que puede usar para [configurar y personalizar sus listas](#customizing-lists).

## Ejemplos de listas básicas

### El entorno itemize para listas con viñetas (sin ordenar)

Las listas no ordenadas (con viñetas) se producen mediante el `itemize` entorno, donde cada entrada de la lista comienza usando el `\item` comando, que también genera el símbolo de viñeta.

```latex
Las listas son fáciles de crear:
\begin{itemize}
  \item Las entradas de la lista comienzan con el comando \verb|\item|.
  \item Las entradas individuales se indican con un punto negro, la llamada viñeta.
  \item El texto de las entradas puede tener cualquier longitud.
\end{itemize}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+unordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ALists+are+easy+to+create%3A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+List+entries+start+with+the+%5Cverb%7C%5Citem%7C+command.%0A++%5Citem+Individual+entries+are+indicated+with+a+black+dot%2C+a+so-called+bullet.%0A++%5Citem+The+text+in+the+entries+may+be+of+any+length.%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![List1bOLV2.png](/files/8435836f623035dc07a2e54e27f56969cd6615be)

### El entorno enumerate para listas numeradas (ordenadas)

Las listas numeradas (ordenadas) tienen la misma sintaxis pero usan el `enumerate` entorno: cada entrada debe ir precedida por la secuencia de control `\item`, que generará automáticamente números para etiquetar el elemento. Estos números comienzan en 1 con cada uso del `enumerate` entorno; observe que este comportamiento predeterminado de numeración de LaTeX puede cambiarse/controlarse mediante el [`enumitem` paquete](https://ctan.org/pkg/enumitem).

```latex
Las listas numeradas (ordenadas) son fáciles de crear:
\begin{enumerate}
  \item Los elementos se numeran automáticamente.
  \item Los números comienzan en 1 con cada uso del entorno \texttt{enumerate}.
  \item Otra entrada en la lista
\end{enumerate}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ANumbered+%28ordered%29+lists+are+easy+to+create%3A%0A%5Cbegin%7Benumerate%7D%0A++%5Citem+Items+are+numbered+automatically.%0A++%5Citem+The+numbers+start+at+1+with+each+use+of+the+%5Ctexttt%7Benumerate%7D+environment.%0A++%5Citem+Another+entry+in+the+list%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![List2OLV2.png](/files/2e396f362f7c68b0a92181320b46438ffe9246c5)

### El entorno description

El siguiente ejemplo demuestra los `descripción` entorno. La etiqueta (opcional) para cada entrada se encierra entre corchetes después del `\item` comando:

```latex
\item[label text] El texto de su descripción va aquí...
```

También usamos el `blindtext` paquete para generar algo de texto ficticio en inglés en la tercera entrada. Para obtener inglés necesitamos usar el `babel` paquete con la opción de idioma `[english]`:

```latex
\usepackage[english]{babel}
```

Aquí está el ejemplo:

```latex
\documentclass{article}
\usepackage[english]{babel} % Para obtener texto en inglés con el paquete blindtext
\usepackage{blindtext}
\begin{document}

\begin{description}
   \item Esta es una entrada \textit{sin} etiqueta.
   \item[Algo corto] Una descripción breve de una línea.
   \item[Algo largo] Una descripción mucho más larga. \blindtext[1]
\end{description}
\end{document}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+description+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Benglish%5D%7Bbabel%7D+%25+To+obtain+English+text+with+the+blindtext+package%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bdescription%7D%0A+++%5Citem+This+is+an+entry+%5Ctextit%7Bwithout%7D+a+label.%0A+++%5Citem%5BSomething+short%5D+A+short+one-line+description.%0A+++%5Citem%5BSomething+long%5D+A+much+longer+description.+%5Cblindtext%5B1%5D%0A%5Cend%7Bdescription%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Descriptionlist2.png](/files/05c74e922dfdf790cdc766621c88db928b889722)

## Cambiar la etiqueta de entradas individuales

Como se muestra en el `descripción` ejemplo del entorno, `\item` el comando toma un parámetro opcional, entre corchetes. Puede usar esta función dentro de `itemize` y `enumerate` entornos para cambiar la etiqueta predeterminada de entradas individuales en su lista:

```latex
\item[label text] El texto de su entrada va aquí...
```

El `texto de la etiqueta` se usará para producir la etiqueta de esta entrada.

```latex
Cambie las etiquetas usando \verb|\item[label text]| en un entorno \texttt{itemize}
\begin{itemize}
  \item Este es mi primer punto
  \item Otro punto que quiero señalar
  \item[!] ¡Un punto para exclamar algo!
  \item[$\blacksquare$] Plantee el punto de forma justa y cuadrada.
  \item[NOTE] Esta entrada no tiene viñeta
  \item[] ¿Una etiqueta en blanco?
\end{itemize}

\vspace{10pt}

Cambie las etiquetas usando \verb|\item[label text]| en un entorno \texttt{enumerate}
\begin{enumerate}
  \item Este es mi primer punto
  \item Otro punto que quiero señalar
  \item[!] ¡Un punto para exclamar algo!
  \item[$\blacksquare$] Plantee el punto de forma justa y cuadrada.
  \item[NOTE] Esta entrada no tiene viñeta
  \item[] ¿Una etiqueta en blanco?
\end{enumerate}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+list+labels\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%25+to+access+%24%5Cblacksquare%24%0A%5Cbegin%7Bdocument%7D%0AChange+the+labels+using+%5Cverb%7C%5Citem%5Blabel+text%5D%7C+in+an+%5Ctexttt%7Bitemize%7D+environment%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+This+is+my+first+point%0A++%5Citem+Another+point+I+want+to+make+%0A++%5Citem%5B%21%5D+A+point+to+exclaim+something%21%0A++%5Citem%5B%24%5Cblacksquare%24%5D+Make+the+point+fair+and+square.%0A++%5Citem%5BNOTE%5D+This+entry+has+no+bullet%0A++%5Citem%5B%5D+A+blank+label%3F%0A%5Cend%7Bitemize%7D%0A%0A%5Cvspace%7B10pt%7D%0A%0AChange+the+labels+using+%5Cverb%7C%5Citem%5Blabel+text%5D%7C+in+an+%5Ctexttt%7Benumerate%7D+environment%0A%5Cbegin%7Benumerate%7D%0A++%5Citem+This+is+my+first+point%0A++%5Citem+Another+point+I+want+to+make+%0A++%5Citem%5B%21%5D+A+point+to+exclaim+something%21%0A++%5Citem%5B%24%5Cblacksquare%24%5D+Make+the+point+fair+and+square.%0A++%5Citem%5BNOTE%5D+This+entry+has+no+bullet%0A++%5Citem%5B%5D+A+blank+label%3F%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![ChangeBullets.png](/files/5a03f8d7fb9b5cc82e9955412ccba698308f5bdb)

## Listas anidadas

En LaTeX puede insertar una lista dentro de otra. Los tipos de lista anteriores pueden incluirse unos dentro de otros, ya sean mezclados o de un solo tipo, hasta una profundidad de 4 niveles.

```latex
\begin{enumerate}
   \item Las etiquetas consisten en números secuenciales
   \begin{itemize}
     \item Las entradas individuales se indican con un punto negro, una llamada viñeta
     \item El texto de las entradas puede tener cualquier longitud
     \begin{description}
     \item[Nota:] Me gustaría describir algo aquí
     \item[¡Cuidado!] Y dar una advertencia aquí
     \end{description}
   \end{itemize}
   \item Los números comienzan en 1 con cada uso del entorno \texttt{enumerate}
\end{enumerate}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Benumerate%7D%0A+++%5Citem+The+labels+consists+of+sequential+numbers%0A+++%5Cbegin%7Bitemize%7D%0A+++++%5Citem+The+individual+entries+are+indicated+with+a+black+dot%2C+a+so-called+bullet%0A+++++%5Citem+The+text+in+the+entries+may+be+of+any+length%0A+++++%5Cbegin%7Bdescription%7D%0A+++++%5Citem%5BNote%3A%5D+I+would+like+to+describe+something+here%0A+++++%5Citem%5BCaveat%21%5D+And+give+a+warning+here%0A+++++%5Cend%7Bdescription%7D%0A+++%5Cend%7Bitemize%7D%0A+++%5Citem+The+numbers+starts+at+1+with+each+use+of+the+%5Ctexttt%7Benumerate%7D+environment%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![List3bOLV2.png](/files/f3ce38d1bfb0a882f4d624b43dc41abdcf06fd9d)

### Listas anidadas: estilo de etiquetas

El estilo de etiqueta de las entradas de listas anidadas cambia según su profundidad en la lista. En listas anidadas `itemize` el tipo de viñeta cambia; en `enumerate` listas, el formato de los números cambia con la profundidad creciente de la entrada. Ambos se limitan a una profundidad de 4 niveles.

#### Listas enumerate anidadas: formato de números

```latex
\begin{enumerate}
   \item Elemento de primer nivel
   \item Elemento de primer nivel
   \begin{enumerate}
     \item Elemento de segundo nivel
     \item Elemento de segundo nivel
     \begin{enumerate}
       \item Elemento de tercer nivel
       \item Elemento de tercer nivel
       \begin{enumerate}
         \item Elemento de cuarto nivel
         \item Elemento de cuarto nivel
       \end{enumerate}
     \end{enumerate}
   \end{enumerate}
 \end{enumerate}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Benumerate%7D%0A+++%5Citem+First+level+item%0A+++%5Citem+First+level+item%0A+++%5Cbegin%7Benumerate%7D%0A+++++%5Citem+Second+level+item%0A+++++%5Citem+Second+level+item%0A+++++%5Cbegin%7Benumerate%7D%0A+++++++%5Citem+Third+level+item%0A+++++++%5Citem+Third+level+item%0A+++++++%5Cbegin%7Benumerate%7D%0A+++++++++%5Citem+Fourth+level+item%0A+++++++++%5Citem+Fourth+level+item%0A+++++++%5Cend%7Benumerate%7D%0A+++++%5Cend%7Benumerate%7D%0A+++%5Cend%7Benumerate%7D%0A+%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![List4OLV2.png](/files/a273b6da639359ee0e3cb4502618f6ca0691bb1e)

#### Listas itemize anidadas: estilo de viñetas

El estilo de viñeta cambia según la profundidad de las listas anidadas:

```latex
\begin{itemize}
   \item Elemento de primer nivel
   \item Elemento de primer nivel
   \begin{itemize}
     \item Elemento de segundo nivel
     \item Elemento de segundo nivel
     \begin{itemize}
       \item Elemento de tercer nivel
       \item Elemento de tercer nivel
       \begin{itemize}
         \item Elemento de cuarto nivel
         \item Elemento de cuarto nivel
       \end{itemize}
     \end{itemize}
   \end{itemize}
 \end{itemize}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bitemize%7D%0A+++%5Citem+First+level+item%0A+++%5Citem+First+level+item%0A+++%5Cbegin%7Bitemize%7D%0A+++++%5Citem+Second+level+item%0A+++++%5Citem+Second+level+item%0A+++++%5Cbegin%7Bitemize%7D%0A+++++++%5Citem+Third+level+item%0A+++++++%5Citem+Third+level+item%0A+++++++%5Cbegin%7Bitemize%7D%0A+++++++++%5Citem+Fourth+level+item%0A+++++++++%5Citem+Fourth+level+item%0A+++++++%5Cend%7Bitemize%7D%0A+++++%5Cend%7Bitemize%7D%0A+++%5Cend%7Bitemize%7D%0A+%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![List5OLV2.png](/files/abe78dbdfc99a4709b0f2425a066d35398e66e15)

## Personalización de listas

Las listas de LaTeX son *altamente* configurables, lo que ofrece mucho margen para crear muchos tipos diferentes de listas personalizadas. Puede hacer modificaciones directas a los tipos de lista estándar de LaTeX o, *preferiblemente*usar el versátil paquete [enumitem](https://ctan.org/pkg/enumitem) para hacerlo por usted.

CTAN aloja una serie de [paquetes relacionados con listas](https://ctan.org/topic/list) que puede valer la pena investigar si tiene requisitos de personalización particulares. Además, tex.stackexchange ofrece una gran cantidad de [preguntas relacionadas con listas](https://tex.stackexchange.com/questions/tagged/lists) con respuestas que aportan información útil y excelentes ejemplos.

Comenzaremos con algunos ejemplos que modifican las etiquetas de las listas y luego pasaremos a la personalización de la disposición de las listas.

### Personalización de listas: cambiar etiquetas

En primer lugar, mostramos cómo cambiar la etiquetación de listas sin usar el [enumitem](https://ctan.org/pkg/enumitem).

#### comandos estándar para generar etiquetas

Las listas personalizadas pueden producirse usando el [enumitem](https://ctan.org/pkg/enumitem) paquete o modificando directamente las listas estándar. Aquí, daremos un resumen de algunos comandos estándar de LaTeX, variables de contador y parámetros de lista que quizá necesite conocer.

La siguiente tabla muestra los comandos de LaTeX usados para la generación de etiquetas en cada nivel de los `itemize` y `enumerate` entornos de lista:

|           |                                      |                                    |
| --------- | ------------------------------------ | ---------------------------------- |
| **Nivel** | **`enumerate`** comandos de etiqueta | **`itemize`** comandos de etiqueta |
| Nivel 1   | `\labelenumi`                        | `\labelitemi`                      |
| Nivel 2   | `\labelenumii`                       | `\labelitemii`                     |
| Nivel 3   | `\labelenumiii`                      | `\labelitemiii`                    |
| Nivel 4   | `\labelenumiv`                       | `\labelitemiv`                     |

#### Variables de contador para enumerate

El `enumerate` entorno de lista también usa cuatro *contador* variables que llevan el seguimiento del valor actual de la etiqueta para cada nivel:

|           |                                      |
| --------- | ------------------------------------ |
| **Nivel** | **`enumerate`** variable de contador |
| Nivel 1   | `enumi`                              |
| Nivel 2   | `enumii`                             |
| Nivel 3   | `enumiii`                            |
| Nivel 4   | `enumiv`                             |

#### Ejemplos: personalización de etiquetas de listas enumerate

Puede configurar la etiquetación estándar de LaTeX usando `\renewcommand` para redefinir los comandos que generan etiquetas y, para el `enumerate` entorno, también puede usar la variable de contador apropiada.

Aquí hay algunos ejemplos que hacen esto sin usar el `enumitem` paquete.

**Ejemplo práctico**

```latex
\documentclass{article}
\begin{document}
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}}
\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}}
\renewcommand{\labelenumiv}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.\arabic{enumiv}}

\begin{enumerate}
\item Uno
\item Dos
\item Tres
\begin{enumerate}
    \item Tres punto uno
    \begin{enumerate}
    \item Tres punto uno, punto uno
        \begin{enumerate}
        \item Tres punto uno, punto uno, punto uno
        \item Tres punto uno, punto uno, punto dos
        \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item Cuatro
\item Cinco
\end{enumerate}

\end{document}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Configuring+list+layout\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Crenewcommand%7B%5Clabelenumii%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiii%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D.%5Carabic%7Benumiii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiv%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D.%5Carabic%7Benumiii%7D.%5Carabic%7Benumiv%7D%7D%0A%0A%5Cbegin%7Benumerate%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cbegin%7Benumerate%7D%0A++++%5Citem+Three+point+one%0A++++%5Cbegin%7Benumerate%7D%0A++++%5Citem+Three+point+one%2C+point+one%0A++++++++%5Cbegin%7Benumerate%7D%0A++++++++%5Citem+Three+point+one%2C+point+one%2C+point+one%0A++++++++%5Citem+Three+point+one%2C+point+one%2C+point+two%0A++++++++%5Cend%7Benumerate%7D%0A++++%5Cend%7Benumerate%7D%0A%5Cend%7Benumerate%7D%0A%5Citem+Four%0A%5Citem+Five%0A%5Cend%7Benumerate%7D%0A%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![List8OLV2.png](/files/63b9ecf551baf04ebcd8b3a950d6b86ef39ebba8)

**Impresión de variables de contador**

En el ejemplo anterior, se usó el comando `\arabic` para componer tipográficamente el valor actual de varias *variables de contador*. Tenga en cuenta que «números arábigos», y el uso del comando `\arabic`, se refiere a los dígitos del 0 al 9: vea este [artículo sobre números arábigos en Wikipedia](https://en.wikipedia.org/wiki/Arabic_numerals) para más información de contexto.

En general, un *variable de contador* puede imprimirse en varios formatos usando uno de los 5 comandos siguientes:

* `\arabic{*counter variable*}`
* `\roman{*counter variable*}`
* `\Roman{*counter variable*}`
* `\Alph{*counter variable*}`
* `\alph{*counter variable*}`

Por ejemplo:

```latex
\documentclass{article}
\begin{document}
\begin{verbatim}
\newcounter{foo}
\setcounter{foo}{5}
\end{verbatim}
\newcounter{foo}
\setcounter{foo}{5}

\begin{itemize}
\item \verb|\arabic{foo}| produce \arabic{foo}
\item \verb|\roman{foo}| produce \roman{foo}
\item \verb|\Roman{foo}| produce \Roman{foo}
\item \verb|\Alph{foo}| produce \Alph{foo}
\item \verb|\alph{foo}| produce \alph{foo}
\end{itemize}

\end{document}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Configuring+list+layout\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bverbatim%7D%0A%5Cnewcounter%7Bfoo%7D%0A%5Csetcounter%7Bfoo%7D%7B5%7D++++%0A%5Cend%7Bverbatim%7D%0A%5Cnewcounter%7Bfoo%7D%0A%5Csetcounter%7Bfoo%7D%7B5%7D+%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Carabic%7Bfoo%7D%7C+produces+%5Carabic%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5Croman%7Bfoo%7D%7C+produces+%5Croman%7Bfoo%7D+%0A%5Citem+%5Cverb%7C%5CRoman%7Bfoo%7D%7C+produces+%5CRoman%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5CAlph%7Bfoo%7D%7C+produces+%5CAlph%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5Calph%7Bfoo%7D%7C+produces+%5Calph%7Bfoo%7D%0A%5Cend%7Bitemize%7D%0A%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![List8OLV2.png](/files/780f6f773989747fa44e1ed178ba3b3da0a96b6f)

**Ejemplo no práctico (divertido)**

Este ejemplo compone emojis usando una fuente OpenType en color, así que *solo funcionará en LuaLaTeX*. Véase el artículo de Overleaf [Resumen de tecnologías que respaldan el uso de fuentes de emojis en color en LaTeX](/latex/es/articulos-en-profundidad/10-an-overview-of-technologies-supporting-the-use-of-colour-emoji-fonts-in-latex.md) para más información sobre la composición de emojis.

Aunque esto es solo un ejemplo divertido, usando LuaLaTeX, demuestra cómo personalizar los cuatro comandos de generación de etiquetas y usar las variables de contador de etiquetas para crear una etiquetación poco común... Haga clic en el enlace “Open in Overleaf” para ver el código completo.

```latex
\renewcommand{\labelenumi}{\duck{enumi}}
\renewcommand{\labelenumii}{\duck{enumi}.\duckegg{enumii}}
\renewcommand{\labelenumiii}{\duck{enumi}.\duckegg{enumii}.\duckegg{enumiii}}
\renewcommand{\labelenumiv}{\duck{enumi}.\duckegg{enumii}.\duckegg{enumiii}.\duckchick{enumiv}}

\begin{enumerate}
\item Un pato
\item Más patos
\item Una ráfaga de patos
\begin{enumerate}
    \item Patos y huevos
    \begin{enumerate}
    \item ¿Veo...
    \item Patos y pre-patos
       \begin{enumerate}
       \item ¡Awww...
       \item ¡Tan lindo!
       \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item De vuelta a los patos
\item Otra vez
\end{enumerate}
```

[Para ver el ***código completo***, abra este ejemplo de LuaLaTeX en Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Fun+example+of+configuring+a+list\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewfontfamily%5Cemojifont%5BRenderer%3DHarfbuzz%2CSizeFeatures%3D%7BSize%3D6%7D%5D%7BNotoColorEmoji.ttf%7D%0A%0A%5Cnewcount%5Cduckcount%0A%5Cnewcount%5Ceggcount%0A%5Cnewcount%5Cchickcount%0A%0A%5Cdef%5Cduck%231%7B%25%0A%5Cduckcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F986%7D%25%0A%5Cadvance%5Cduckcount+by+-1%0A%5Cunless%5Cifnum%5Cduckcount%3D0+%0A%5Crepeat%7D%0A%0A%5Cdef%5Cduckegg%231%7B%25%0A%5Ceggcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F95A%7D%25%0A%5Cadvance%5Ceggcount+by+-1%0A%5Cunless%5Cifnum%5Ceggcount%3D0+%0A%5Crepeat%7D%0A%0A%5Cdef%5Cduckchick%231%7B%25%0A%5Cchickcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F424%7D%25%0A%5Cadvance%5Cchickcount+by+-1%0A%5Cunless%5Cifnum%5Cchickcount%3D0+%0A%5Crepeat%7D%0A%5Crenewcommand%7B%5Clabelenumi%7D%7B%5Cduck%7Benumi%7D%7D%0A%5Crenewcommand%7B%5Clabelenumii%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiii%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D.%5Cduckegg%7Benumiii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiv%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D.%5Cduckegg%7Benumiii%7D.%5Cduckchick%7Benumiv%7D%7D+%0A%0A%5Cbegin%7Benumerate%7D%0A%5Citem+A+duck%0A%5Citem+More+ducks%0A%5Citem+A+flurry+of+ducks%0A%5Cbegin%7Benumerate%7D%0A++++%5Citem+Ducks+and+eggs%0A++++%5Cbegin%7Benumerate%7D%0A++++%5Citem+Do+I+see...+%0A++++%5Citem+Ducks+and+pre-ducks+%0A+++++++%5Cbegin%7Benumerate%7D%0A+++++++%5Citem+Awww...%0A+++++++%5Citem+So+cute%21%0A+++++++%5Cend%7Benumerate%7D%0A++++%5Cend%7Benumerate%7D%0A%5Cend%7Benumerate%7D%0A%5Citem+Back+to+ducks%0A%5Citem+Again%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida

![Ducklist.png](/files/c85f2c2d449639914dfbf7f2d914666caf6bc77a)

### Personalización de listas: cambiar la disposición

Además de personalizar las etiquetas, es posible modificar el espaciado y la disposición de las listas, pero primero necesitamos conocer los distintos parámetros de LaTeX que determinan la composición tipográfica y la disposición de las listas.

#### Parámetros de lista de LaTeX

Puedes usar el [paquete layouts](https://ctan.org/pkg/layouts?lang=en) para generar un diagrama que muestra los parámetros de lista de LaTeX:

```latex
\documentclass{article}
\usepackage{layouts}
\begin{document}
\begin{figure}
\listdiagram
\caption{Los parámetros de \LaTeX{} que definen la composición tipográfica y la disposición de las listas.}
\end{figure}
\end{document}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+layout+package+to+view+list+structures\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Blayouts%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bfigure%7D%0A%5Clistdiagram%0A%5Ccaption%7BThe+%5CLaTeX%7B%7D+parameters+which+define+typesetting+and+layout+of+lists.%7D+%0A%5Cend%7Bfigure%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![](/files/801d5a097163fccee64e6aa539a00a268d9a98ee)

El significado de estos parámetros se describe en [la sección de listas del manual de referencia no oficial de LaTeX2e](https://tug.org/texinfohtml/latex2e.html#list) así que no lo reproduciremos aquí.

#### Crear una lista personalizada usando el entorno list

LaTeX proporciona el entorno genérico `list` que proporciona un marco para crear sus propios tipos de lista. Usando la información contenida en el diagrama anterior, el siguiente ejemplo es una versión ligeramente modificada de uno contenido en la [sección de listas](https://tug.org/texinfohtml/latex2e.html#list) del [manual de referencia no oficial de LaTeX2e](https://tug.org/texinfohtml/latex2e.html)

```latex
\documentclass{article}
\begin{document}
\newcounter{boxlblcounter}
\newcommand{\makeboxlabel}[1]{\fbox{#1.}\hfill}% \hfill llena la caja de la etiqueta
\newenvironment{boxlabel}
  {\begin{list}
    {\arabic{boxlblcounter}}
    {\usecounter{boxlblcounter}
     \setlength{\labelwidth}{3em}
     \setlength{\labelsep}{0em}
     \setlength{\itemsep}{2pt}
     \setlength{\leftmargin}{1.5cm}
     \setlength{\rightmargin}{2cm}
     \setlength{\itemindent}{0em}
     \let\makelabel=\makeboxlabel
    }
  }
{\end{list}}

\newcommand{\randomtext}{Hello, here is some text without a meaning. Hello, here is some text without a meaning. Hello, here is some text without a meaning.}

\noindent\randomtext

\begin{boxlabel}
\item \randomtext
\item \randomtext
\item \randomtext
\end{boxlabel}
\end{document}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+list+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcounter%7Bboxlblcounter%7D++%0A%5Cnewcommand%7B%5Cmakeboxlabel%7D%5B1%5D%7B%5Cfbox%7B%231.%7D%5Chfill%7D%25+%5Chfill+fills+the+label+box%0A%5Cnewenvironment%7Bboxlabel%7D%0A++%7B%5Cbegin%7Blist%7D%0A++++%7B%5Carabic%7Bboxlblcounter%7D%7D%0A++++%7B%5Cusecounter%7Bboxlblcounter%7D%0A+++++%5Csetlength%7B%5Clabelwidth%7D%7B3em%7D%0A+++++%5Csetlength%7B%5Clabelsep%7D%7B0em%7D%0A+++++%5Csetlength%7B%5Citemsep%7D%7B2pt%7D%0A+++++%5Csetlength%7B%5Cleftmargin%7D%7B1.5cm%7D%0A+++++%5Csetlength%7B%5Crightmargin%7D%7B2cm%7D%0A+++++%5Csetlength%7B%5Citemindent%7D%7B0em%7D+%0A+++++%5Clet%5Cmakelabel%3D%5Cmakeboxlabel%0A++++%7D%0A++%7D%0A%7B%5Cend%7Blist%7D%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Cnoindent%5Crandomtext%0A%0A%5Cbegin%7Bboxlabel%7D%0A%5Citem+%5Crandomtext%0A%5Citem+%5Crandomtext%0A%5Citem+%5Crandomtext%0A%5Cend%7Bboxlabel%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Listenvironmemt2.png](/files/6085527bf9ed587894905bd7e8492953eaf3ba59)

### Uso del paquete enumitem para modificar y crear listas

El [`enumitem` paquete](https://ctan.org/pkg/enumitem?lang=en) es el método recomendado para modificar listas estándar de LaTeX o crear sus propios formatos de lista personalizados. `enumitem` ofrece una *gran cantidad* de funciones, así que no podemos cubrirlas todas, pero sí podemos proporcionar algunos ejemplos básicos para ayudarle a empezar. Se anima encarecidamente a cualquiera que desee explorar este versátil paquete con más profundidad a *encarecidamente* a navegar por tex.stackexchange en busca de [preguntas, respuestas (y ejemplos) relacionadas con el `enumitem` paquete](https://tex.stackexchange.com/questions/tagged/enumitem), y a leer la [documentación del paquete](http://mirrors.ctan.org/macros/latex/contrib/enumitem/enumitem.pdf).

#### opción shortlabels del paquete enumitem

El `enumitem` proporciona un parámetro de configuración opcional llamado `shortlabels` que se usa mediante

```latex
\usepackage[shortlabels]{enumitem}
```

El `shortlabels` la opción imita el comportamiento del `enumerate` paquete, proporcionando un método conciso para definir el esquema de numeración de los entornos enumerate. Véase el [`enumerate` documentación del paquete](https://ctan.org/pkg/enumerate?lang=en) para obtener más información.

#### Modificar una lista estándar

Con referencia al [diagrama de parámetros de LaTeX](#latex-list-parameters) podemos usar `enumitem` para personalizar fácilmente una lista estándar de LaTeX, como `itemize`:

```latex
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\newcommand{\randomtext}{Hello, here is some text without a meaning. Hello, here is some text without a meaning.}

\section*{Usando la configuración predeterminada de LaTeX para \texttt{itemize}}

\randomtext

\begin{itemize}
\item \randomtext
   \begin{itemize}
      \item \randomtext
        \begin{itemize}
        \item \randomtext
        \end{itemize}
   \item \randomtext
   \end{itemize}
\item \randomtext
\end{itemize}

\section*{Usando un \texttt{itemize} personalizado mediante \texttt{enumitem}}

\subsection*{Observe el efecto de los ajustes de márgenes izquierdo y derecho}

\randomtext

\begin{itemize}[leftmargin=30pt, rightmargin=2cm]
\item \randomtext
   \begin{itemize}
      \item \randomtext
        \begin{itemize}
        \item \randomtext
        \end{itemize}
   \item \randomtext
   \end{itemize}
\item \randomtext
\end{itemize}

\end{document}
```

[Abre este `enumitem` ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Modifying+a+LaTeX+list+with+enumitem\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Csection%2A%7BUsing+LaTeX%27s+default+settings+for+%5Ctexttt%7Bitemize%7D%7D%0A%0A%5Crandomtext%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A+++%5Cbegin%7Bitemize%7D%0A++++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bitemize%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bitemize%7D%0A+++%5Citem+%5Crandomtext%0A+++%5Cend%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bitemize%7D%0A%0A%5Csection%2A%7BUsing+a+custom+%5Ctexttt%7Bitemize%7D+via+%5Ctexttt%7Benumitem%7D%7D%0A%0A%5Csubsection%2A%7BNote+the+effect+of+left+and+right+margin+settings%7D%0A%0A%5Crandomtext%0A%0A%5Cbegin%7Bitemize%7D%5Bleftmargin%3D30pt%2C+rightmargin%3D2cm%5D%0A%5Citem+%5Crandomtext%0A+++%5Cbegin%7Bitemize%7D%0A++++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bitemize%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bitemize%7D%0A+++%5Citem+%5Crandomtext%0A+++%5Cend%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bitemize%7D%0A%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Tweakitemize2.png](/files/8281e9bdae7d376aaabd048676eb5ccb8b3899f8)

#### Crear una nueva lista con enumitem

Para crear un nuevo tipo de lista con `enumitem` usted usa el `\newlist` comando, que requiere 3 argumentos:

```latex
\newlist{name}{list-type}{max-depth}
```

* **`nombre`**: el nombre de su lista, que se usará como entorno:

  ```
  \begin{name}
  ...
  \end{name}
  ```
* **`tipo de lista`** esto tiene que ser uno de los tipos estándar de lista de LaTeX:
* `enumerate`
* `itemize`
* `descripción`
* **`max-depth`**: la profundidad máxima a la que se anidará esta lista. **NOTA** para listas que superen el límite de anidamiento predeterminado de 4 de LaTeX, también debe emitir el comando `\setlistdepth{*integer*}` donde `*integer*` es la profundidad máxima de anidamiento que piensa usar. Véase el [Lista para abogados](#lists-for-lawyers-nesting-lists-to-an-arbitrary-depth) ejemplo para una demostración de eso.

Después de haber creado la nueva lista, puede configurarla con el `\setlist` comando.

**Uso de \setlist para configurar una lista personalizada creada con enumitem**

En este ejemplo crearemos una nueva lista llamada `myitems` que se basa en `enumerate`. Estableceremos [`**profundidad máxima**`](#maxdepth) a 3:

```latex
\newlist{myitems}{enumerate}{3}
```

Un requisito mínimo es usar el `\setlist` comando para definir etiquetas para esta lista personalizada. Una forma de hacerlo, para listas basadas en enumerate, es usar las variables de contador creadas por el `enumitem` paquete: esas variables de contador usan el `**nombre**` de tu lista: `myitems` en nuestro ejemplo.

Así es como usamos las variables de contador correspondientes dentro de nuestra configuración de etiquetas:

* `myitems**i**` para las entradas del nivel 1
* `myitems**ii**` para las entradas del nivel 2
* `myitems**iii**` para las entradas del nivel 3

Si tuviéramos más de 3 niveles, las variables de contador correspondientes se llamarían `myitems**iv**` (nivel 4), `myitems**v**` (nivel 5) y así sucesivamente, continuando con el uso de números romanos en minúscula.

Además de las etiquetas, también estableceremos algunos valores para `margen izquierdo` y `margen derecho` (véase el [diagrama de parámetros de LaTeX](#latex-list-parameters)).

```latex
\documentclass{article}
\usepackage{enumitem}
\begin{document}

\newcommand{\randomtext}{Hello, here is some text without a meaning. Hello, here is some text without a meaning.}

\newcommand{\shortrandomtext}{Hola, aquí hay un poco de texto.}
% Crear una lista personalizada basada en enumerate
% Se llama "myitems"
% Crearemos una lista de 3 niveles de profundidad
\newlist{myitems}{enumerate}{3}

% Configurar el comportamiento de las entradas del nivel 1
% NOTA: usamos el contador de la lista "myitemsi"
\setlist[myitems, 1]
{label=\arabic{myitemsi}., %1., 2., 3., ...
leftmargin=\parindent,
rightmargin=10pt
}

% Configurar el comportamiento de las entradas del nivel 2
% NOTA: usamos el contador de la lista "myitemsii"
\setlist[myitems, 2]
{label=\arabic{myitemsi}.\arabic{myitemsii}, %1.1, 1.2, 1.3...
leftmargin=15pt,
rightmargin=15pt}

% Configurar el comportamiento de las entradas del nivel 3
% NOTA: usamos el contador de la lista "myitemsiii"
\setlist[myitems, 3]
% Usar una etiqueta de 1.1:<kern>(a), 1.1:<kern>(b), etc.
{label=\arabic{myitemsi}.\arabic{myitemsii}:\kern1.5pt(\alph{myitemsiii}),
leftmargin=30pt,
rightmargin=30pt}

\randomtext
\begin{myitems}
\item \randomtext
    \begin{myitems}
    \item \randomtext
        \begin{myitems}
        \item \randomtext
        \item \randomtext
        \end{myitems}
    \item \shortrandomtext
    \item \shortrandomtext
    \end{myitems}
\item \randomtext
\end{myitems}
\end{document}
```

[Abre este `enumitem` ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Create+a+custom+list+with+enumitem\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Cnewcommand%7B%5Cshortrandomtext%7D%7BHello%2C+here+is+some+text.%7D%0A%25+Create+a+custom+list+based+on+enumerate%0A%25+It+is+called+%22myitems%22%0A%25+We%27ll+create+a+list+that+is+3+levels+deep%0A%5Cnewlist%7Bmyitems%7D%7Benumerate%7D%7B3%7D%0A%0A%25+Configure+the+behaviour+of+level+1+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsi%22%0A%5Csetlist%5Bmyitems%2C+1%5D%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%2C+%251.%2C+2.%2C+3.%2C+...%0Aleftmargin%3D%5Cparindent%2C%0Arightmargin%3D10pt%0A%7D%0A%0A%25+Configure+the+behaviour+of+level+2+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsii%22%0A%5Csetlist%5Bmyitems%2C+2%5D%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%5Carabic%7Bmyitemsii%7D%2C+%251.1%2C+1.2%2C+1.3...%0Aleftmargin%3D15pt%2C%0Arightmargin%3D15pt%7D%0A%0A%25+Configure+the+behaviour+of+level+3+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsiii%22%0A%5Csetlist%5Bmyitems%2C+3%5D%0A%25+Use+a+label+of+1.1%3A%3Ckern%3E%28a%29%2C+1.1%3A%3Ckern%3E%28b%29+etc++%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%5Carabic%7Bmyitemsii%7D%3A%5Ckern1.5pt%28%5Calph%7Bmyitemsiii%7D%29%2C%0Aleftmargin%3D30pt%2C%0Arightmargin%3D30pt%7D%0A%0A%5Crandomtext%0A%5Cbegin%7Bmyitems%7D%0A%5Citem+%5Crandomtext%0A++++%5Cbegin%7Bmyitems%7D%0A++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bmyitems%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bmyitems%7D%0A++++%5Citem+%5Cshortrandomtext%0A++++%5Citem+%5Cshortrandomtext%0A++++%5Cend%7Bmyitems%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bmyitems%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![CustomItemizeList.png](/files/11a01e9c50f21b186cccf1c4a088e83653c3872d)

#### Listas para abogados: anidar listas a una profundidad arbitraria

El `enumitem` el paquete te permite crear listas que pueden anidarse a una profundidad arbitraria, eliminando el límite de 4 de LaTeX. Cualquiera que prepare contratos con estructuras de cláusulas complejas (profundamente anidadas) podría beneficiarse de esto, aunque el código anidado sí que parece un poco intimidante...

```latex
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\newlist{contract}{enumerate}{10}
\setlist[contract]{label*=\arabic*.}
\setlistdepth{10}

\section*{¡Lista personalizada anidada hasta 10 niveles de profundidad!}

\begin{contract}
\item Nivel 1
 \begin{contract}
 \item Nivel 2
   \begin{contract}
   \item Nivel 3
     \begin{contract}
     \item Nivel 4
       \begin{contract}
       \item Nivel 5
        \begin{contract}
        \item Nivel 6
         \begin{contract}
         \item Nivel 7
          \begin{contract}
          \item Nivel 8
           \begin{contract}
           \item Nivel 9
            \begin{contract}
            \item Nivel 10
          \end{contract}
         \end{contract}
        \end{contract}
       \end{contract}
      \end{contract}
     \end{contract}
    \end{contract}
   \end{contract}
  \end{contract}
 \end{contract}
\end{document}
```

[Abre este `enumitem` ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+enumitem+package+to+create+deeply+nested+lists\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewlist%7Bcontract%7D%7Benumerate%7D%7B10%7D%0A%5Csetlist%5Bcontract%5D%7Blabel%2A%3D%5Carabic%2A.%7D%0A%5Csetlistdepth%7B10%7D+%0A%0A%5Csection%2A%7BCustom+list+nested+to+10+levels+deep%21%7D%0A%0A%5Cbegin%7Bcontract%7D%0A%5Citem+Level+1%0A+%5Cbegin%7Bcontract%7D%0A+%5Citem+Level+2%0A+++%5Cbegin%7Bcontract%7D%0A+++%5Citem+Level+3%0A+++++%5Cbegin%7Bcontract%7D%0A+++++%5Citem+Level+4%0A+++++++%5Cbegin%7Bcontract%7D%0A+++++++%5Citem+Level+5%0A++++++++%5Cbegin%7Bcontract%7D%0A++++++++%5Citem+Level+6%0A+++++++++%5Cbegin%7Bcontract%7D%0A+++++++++%5Citem+Level+7%0A++++++++++%5Cbegin%7Bcontract%7D%0A++++++++++%5Citem+Level+8%0A+++++++++++%5Cbegin%7Bcontract%7D%0A+++++++++++%5Citem+Level+9%0A++++++++++++%5Cbegin%7Bcontract%7D%0A++++++++++++%5Citem+Level+10%0A++++++++++%5Cend%7Bcontract%7D%0A+++++++++%5Cend%7Bcontract%7D%0A++++++++%5Cend%7Bcontract%7D%0A+++++++%5Cend%7Bcontract%7D%0A++++++%5Cend%7Bcontract%7D%0A+++++%5Cend%7Bcontract%7D%0A++++%5Cend%7Bcontract%7D%0A+++%5Cend%7Bcontract%7D%0A++%5Cend%7Bcontract%7D%0A+%5Cend%7Bcontract%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![10levels.png](/files/3ab1ce8ded9485aadeba90e431ce62b0eb86ef85)

#### Viñetas personalizadas usando el paquete enumitem y MetaPost

Los siguientes ejemplos solo funcionan con LuaLaTeX y están diseñados para dar una sugerencia de algunas posibilidades; por supuesto, ¡sustituye MetaPost por tu aplicación/herramienta de dibujo preferida!

Estos ejemplos usan el `luamplib` paquete y también muestran que los comandos expandibles, como `\\the` y `\directlua`, pueden usarse dentro del código MetaPost.

**Ejemplo 1: viñetas de tamaño automático**

Este ejemplo produce viñetas que reducen su tamaño a medida que aumenta la profundidad de la lista. Haz clic en el enlace “Open in Overleaf” para ejecutar el ejemplo y ver el código completo.

```latex
% Declarar una nueva lista basada en itemize mediante enumitem
\newlist{myEnumerate}{itemize}{6}

% La opción nosep elimina todo el espacio vertical
% la etiqueta=\protect\mpbullet hace que todas las viñetas sean
% dibujadas por una macro que usa código MetaPost. \protect
% es necesario, como se señala en el manual de enumitem

\setlist[myEnumerate]{nosep,label=\protect\mpbullet}
\setlistdepth{6}

\begin{myEnumerate}
\item Nivel 1
  \begin{myEnumerate}
   \item Nivel 2
    \begin{myEnumerate}
     \item Nivel 3
      \begin{myEnumerate}
       \item Nivel 4
        \begin{myEnumerate}
         \item Nivel 5
          \begin{myEnumerate}
           \item Nivel 6
           \end{myEnumerate}
        \end{myEnumerate}
       \end{myEnumerate}
    \end{myEnumerate}
   \end{myEnumerate}
\end{myEnumerate}
```

[Para ver el ***código completo***, abra este ejemplo de LuaLaTeX en Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Using+MetaPost+with+the+enumitem+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bluamplib%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Ceverymplib%7Bbeginfig%280%29%3B%7D%0A%5Ceveryendmplib%7Bendfig%3B%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0AThis+list+configuration+example+uses+MetaPost+code+that+contains+Lua+code+via+%5Cverb%7C%5Cdirectlua%7C.+Bullets+are+created+by+MetaPost+code%2C+size+is+calculated+from+the+depth+of+the+entry.%0A%0A%25+It+is+convenient+to+use+%5Clet%5Cmpdepth%5C%40listdepth%3A+makes+it+%0A%25+easier+to+use+in+MetaPost+code%0A%0A%5Ccatcode%60%40%3D11%0A%5Clet%5Cmpdepth%5C%40listdepth%0A%5Ccatcode%60%40%3D12%0A%0A%5Cnewcommand%7B%5Cmpbullet%7D%7B%25%0A%5Cbegin%7Bmplibcode%7D%25%0Adraw+%280%2C0%29..%280%2C-%5Cdirectlua%7Btex.print%28%5Cthe%5Cmpdepth%2F2%29%7D%29+withpen+pencircle+scaled+2pt+withcolor+white%3B%0Adrawdot%280%2C0%29+withpen+pencircle+scaled+%5Cdirectlua%7Btex.print%285%2Fmath.sqrt%28%5Cthe%5Cmpdepth%29%29%7Dbp%3B%0A%5Cend%7Bmplibcode%7D%7D%0A%25+Declare+a+new+itemize-based+list+via+enumitem%0A%5Cnewlist%7BmyEnumerate%7D%7Bitemize%7D%7B6%7D%0A%0A%25+The+nosep+option+removes+all+vertical+spacing%0A%25+the+label%3D%5Cprotect%5Cmpbullet+causes+all+bullets+to+be+%0A%25+drawn+by+a+macro+that+uses+MetaPost+code.+%5Cprotect%0A%25+is+required+as+noted+in+the+enumitem+manual+%0A%0A%5Csetlist%5BmyEnumerate%5D%7Bnosep%2Clabel%3D%5Cprotect%5Cmpbullet%7D%0A%5Csetlistdepth%7B6%7D%0A%0A%5Cbegin%7BmyEnumerate%7D%0A%5Citem+Level+1%0A++%5Cbegin%7BmyEnumerate%7D%0A+++%5Citem+Level+2%0A++++%5Cbegin%7BmyEnumerate%7D%0A+++++%5Citem+Level+3%0A++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++%5Citem+Level+4%0A++++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++++%5Citem+Level+5%0A++++++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++++++%5Citem+Level+6%0A+++++++++++%5Cend%7BmyEnumerate%7D%0A++++++++%5Cend%7BmyEnumerate%7D%0A+++++++%5Cend%7BmyEnumerate%7D%0A++++%5Cend%7BmyEnumerate%7D%0A+++%5Cend%7BmyEnumerate%7D%0A%5Cend%7BmyEnumerate%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Autosize.png](/files/f6ad03029c0c597f73868f1e705a0631b464e581)

**Ejemplo 2: viñetas personalizadas extravagantes**

Este ejemplo se inspiró en un [ejemplo en tex.stackexchange](https://tex.stackexchange.com/a/313337) que Overleaf ha modificado para crear viñetas personalizadas usando código MetaPost. Haz clic en el enlace “Open in Overleaf” para ejecutar el ejemplo y ver el código completo.

```latex
\newlist{todolist}{itemize}{2}

\begin{itemize}
  \item Comienza a pensar en lo que esperamos lograr
  \begin{todolist}
  \item[\mpdot] Identificar objetivos
  \item[\mpyingyang] Equilibrar el impacto ambiental
  \item[\mpsquare{0}{5}{0}] Implementar planes
    \begin{todolist}
    \item[\mpsquare{-0.5}{4}{0}] Planes de la etapa 1
    \item[\mpsquare{-0.5}{4}{-20}] Planes de la etapa 2
    \item[\mpsquare{-0.5}{4}{-40}] Planes de la etapa 3
    \item[\mpsquare{-0.5}{4}{-60}] Planes de la etapa 4
    \end{todolist}
  \end{todolist}
\end{itemize}
```

[Para ver el ***código completo***, abra este ejemplo de LuaLaTeX en Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Second+example+using+MetaPost+with+the+enumitem+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Cusepackage%7Bluamplib%7D%0A%5Ceverymplib%7Bbeginfig%280%29%3B%7D%0A%5Ceveryendmplib%7Bendfig%3B%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Cmpyingyang%7D%7B%25%0A%5Clower1.5pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Apath+p%3B%0Ap%3A%3D%28-1%2C0%29..%280%2C-1%29..%281%2C0%29%3B%0Afill+%28p%7Bup%7D..%7Bdown%7D%280%2C0%29%7Bdown%7D..%7Bup%7Dcycle%29+scaled+0.15cm%3B%0Adraw+%28p..%280%2C1%29..cycle%29+scaled+0.15cm+%3B%0A%5Cend%7Bmplibcode%7D%7D%25%0A%7D%25%0A%5Cnewcommand%7B%5Cmpdot%7D%7B%25%0A%5Clower1.5pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Adrawdot%280%2C0%29+withpen+pencircle+scaled+2bp%3B%0Adraw+fullcircle+scaled+0.2cm%3B%0Adraw+fullcircle+scaled+0.3cm%3B%0A%5Cend%7Bmplibcode%7D%7D%25%0A%7D%25%0A%5Cnewcommand%7B%5Cmpsquare%7D%5B3%5D%7B%25%0A%5Clower%231pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Adraw+unitsquare+rotated+%233+scaled+%232pt%3B%0A%5Cend%7Bmplibcode%7D%25%0A%7D%7D%25%0A%5Cnewlist%7Btodolist%7D%7Bitemize%7D%7B2%7D%0A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+Start+thinking+about+what+we+hope+to+achieve%0A++%5Cbegin%7Btodolist%7D%0A++%5Citem%5B%5Cmpdot%5D+Identify+objectives%0A++%5Citem%5B%5Cmpyingyang%5D+Balance+environmental+impact+%0A++%5Citem%5B%5Cmpsquare%7B0%7D%7B5%7D%7B0%7D%5D+Implement+plans%0A++++%5Cbegin%7Btodolist%7D%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B0%7D%5D+Stage+1+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-20%7D%5D+Stage+2+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-40%7D%5D+Stage+3+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-60%7D%5D+Stage+4+plans%0A++++%5Cend%7Btodolist%7D%0A++%5Cend%7Btodolist%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![CustomBullets2.png](/files/41b9d9cdaa122a8dcd047b40174345097cce49d2)

## Otras características del paquete enumitem

Como se ha señalado, `enumitem` el paquete es extremadamente versátil y ofrece numerosas funciones para usar y personalizar listas. Por ejemplo, entre las funciones que no hemos cubierto se incluyen:

* hacer referencia a entradas de la lista: por ejemplo, consulta esta [pregunta y ejemplo de tex.stackexchane](https://tex.stackexchange.com/questions/524822/help-for-formatting-the-ref-of-nested-enumerate)
* controlar `enumerate` la numeración de listas:
  * establecer el número inicial del primer elemento
  * continuar la numeración de diferentes `enumerate` listas

¡Y muchas más! Navega por [tex.stackexchange para encontrar muchos grandes ejemplos](https://tex.stackexchange.com/questions/tagged/enumitem) de lo que puedes hacer mediante `enumitem`—y, por supuesto, [lee la documentación del paquete](https://ctan.org/pkg/enumitem).


---

# 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/conceptos-basicos-de-latex/04-lists.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.
