> 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/base-de-conocimientos/166-writing-markdown-in-latex-documents.md).

# Escribir Markdown en documentos LaTeX

## Introducción

Para usar markdown en un documento LaTeX necesitas cargar [`markdown` paquete](https://www.ctan.org/pkg/markdown) en el preámbulo de tu documento:

```latex
\usepackage[settings]{markdown}
```

donde `[settings]` es un *conjunto de parámetros* opcional usado para configurar o habilitar funciones específicas del paquete. Consulta la `markdown` paquete [documentación](https://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/generic/markdown/markdown.html) para una [descripción de los parámetros del paquete (opciones)](https://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/generic/markdown/markdown.html#options).

Este artículo revisará brevemente tanto *en línea* markdown —escrito dentro de tu documento— como la importación de *external* markdown contenido en un archivo de texto.

* **Nota de advertencia**: En general, el uso de markdown dentro de un documento LaTeX debe considerarse una opción complementaria y conveniente para redactar algunos elementos del contenido de tu documento, no como una sintaxis alternativa para reemplazar por completo al propio LaTeX.

## Uso de archivos markdown externos

Usa el comando

```latex
\markdownInput{filename}
```

para incluir el archivo markdown `filename`.

El siguiente ejemplo inserta un archivo llamado `example.md`. Usa el enlace debajo de las listas de código para abrirlos como un proyecto de Overleaf:

**`main.tex`**

```latex
\documentclass{article}
\title{Usando el paquete markdown}
\usepackage[smartEllipses]{markdown}
\begin{document}

\markdownInput{example.md}

\end{document}
```

**`example.md`**

```latex
%% example.md

# Soy un archivo markdown.

Y puedo hacer *énfasis*.
## Con subtítulos

> Las citas en bloque son
> escritas así.
>
> Pueden abarcar varios párrafos,
> si quieres.

Usa 3 guiones para un em dash. Usa 2 guiones para
rangos (p. ej., "está todo en los capítulos 12--14").
Tres puntos ... se convertirán en una elipsis
(si incluyes la opción smartEllipses
en el preámbulo). Se admite Unicode.
```

[Abre estos archivos como un proyecto de Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7BUsing+the+markdown+package%7D%0A%5Cusepackage%5BsmartEllipses%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5CmarkdownInput%7Bexample.md%7D%0A%0A%5Cend%7Bdocument%7D\&snip_name\[]=example.md\&snip\[]=%25%25+example.md%0A%0A%23+I%27m+a+markdown+file.%0A%0AAnd+I+can+do+%2Aemphasis%2A.%0A%23%23+With+sub-headers%0A%0A%3E+Block+quotes+are%0A%3E+written+like+so.%0A%3E%0A%3E+They+can+span+multiple+paragraphs%2C%0A%3E+if+you+like.%0A%0AUse+3+dashes+for+an+em-dash.+Use+2+dashes+for+%0Aranges+%28ex.%2C+%22it%27s+all+in+chapters+12--14%22%29.+%0AThree+dots+...+will+be+converted+to+an+ellipsis+%0A%28provided+you+include+the+smartEllipses+option+%0Ain+your+preamble%29.+Unicode+is+supported.\&main_document=main.tex)

Este ejemplo produce la siguiente salida:

![Gráfico que muestra la salida del paquete markdown](/files/d66a0a7ac09e2f67ecbca858fdcf81f76053e189)

## Uso de markdown en línea

Use el `markdown` entorno:

```latex
\begin{markdown}
...tu markdown
va aquí...
\end{markdown}
```

para escribir markdown en línea, como muestra el siguiente ejemplo:

```latex
\documentclass{article}
\usepackage[hashEnumerators,smartEllipses]{markdown}
\begin{document}

Uso de markdown en línea:

\begin{markdown}
Un encabezado h1
============

Los párrafos se separan con una línea en blanco.

2.º párrafo. *Cursiva*, **negrita** y `monoespaciado`. Las listas con viñetas
se ven así:

* este
* aquel
* el otro

> Las citas en bloque son
> escritas así.
>
> Pueden abarcar varios párrafos,
> si quieres.

Un encabezado h2
------------

Aquí hay una lista numerada (usa la opción `hashEnumerators` si quieres usar almohadillas):

#. primer elemento
#. segundo elemento
#. tercer elemento

\end{markdown}
\end{document}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BhashEnumerators%2CsmartEllipses%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%0AUsing+inline+markdown%3A%0A%0A%5Cbegin%7Bmarkdown%7D%0AAn+h1+header%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AParagraphs+are+separated+by+a+blank+line.+%0A%0A2nd+paragraph.+%2AItalic%2A%2C+%2A%2Abold%2A%2A%2C+and+%60monospace%60.+Itemized+lists%0Alook+like%3A%0A%0A%2A+this+one%0A%2A+that+one%0A%2A+the+other+one%0A%0A%3E+Block+quotes+are%0A%3E+written+like+so.%0A%3E%0A%3E+They+can+span+multiple+paragraphs%2C%0A%3E+if+you+like.%0A%0AAn+h2+header%0A------------%0A%0AHere%27s+a+numbered+list+%28use+%60hashEnumerators%60+option+if+you+want+to+use+hashes%29%3A%0A%0A%23.+first+item%0A%23.+second+item%0A%23.+third+item%0A%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Ejemplo de composición tipográfica de markdown en Overleaf](/files/1189a2aeca591ae56942a3371167045767aa72b7)

## Características y opciones del paquete Markdown

Aquí exploraremos algunas de las [características y opciones](https://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/generic/markdown/markdown.html) proporcionadas por el `markdown` paquete.

### Incluir código en markdown

Hay dos mecanismos para mostrar fragmentos de código (bloques de código) dentro de markdown:

* sangrando cada línea del bloque al menos cuatro espacios o una tabulación, o
* usando los llamados [bloques de código delimitados](#using-fenced-code-blocks)

#### Uso de sangría para mostrar bloques de código

El siguiente ejemplo usa 4 o más caracteres de espacio al inicio de cada línea de código; algunas líneas usan 6, 8 o 10 espacios según el tamaño de la sangría requerida:

```latex
\documentclass{article}
\usepackage{markdown}
\begin{document}
Aquí hay algunos fragmentos de código sangrados con al menos 4 caracteres de espacio.
\vspace{6mm}

\begin{markdown}

Aquí hay un fragmento de C:

    /* Déjame iterar ... */

    int i;
    for(i=0; i<10; i++)
    {
      hacer-algo(i)
    }

Aquí hay algo de HTML:

    <html>
      <head>
        <title>Título de la página</title>
      </head>
      <body>
        <h1>Este es un encabezado</h1>
          <p>Este es un párrafo.</p>
      </body>
    </html>

\end{markdown}
\end{document}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown+code+snippets\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0AHere+are+some+code+fragments+indented+by+at+least+4+space+characters.%0A%5Cvspace%7B6mm%7D%0A%0A%5Cbegin%7Bmarkdown%7D%0A%0AHere+is+a+fragment+of+C%3A%0A%0A++++%2F%2A+Let+me+iterate+...+%2A%2F%0A%0A++++int+i%3B%0A++++for%28i%3D0%3B+i%3C10%3B+i%2B%2B%29%0A++++%7B%0A++++++do-something%28i%29%0A++++%7D%0A%0AHere+is+some+HTML%3A%0A%0A++++%3Chtml%3E%0A++++++%3Chead%3E%0A++++++++%3Ctitle%3EPage+Title%3C%2Ftitle%3E%0A++++++%3C%2Fhead%3E%0A++++++%3Cbody%3E%0A++++++++%3Ch1%3EThis+is+a+Heading%3C%2Fh1%3E%0A++++++++++%3Cp%3EThis+is+a+paragraph.%3C%2Fp%3E%0A++++++%3C%2Fbody%3E%0A++++%3C%2Fhtml%3E%0A%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Ejemplo de composición tipográfica de código mediante markdown](/files/fd67084e843a3a86e68667ccb54ee33fb5bd826d)

#### Uso de bloques de código delimitados

Un bloque de código delimitado se crea escribiendo ya sea

* tres acentos graves (` ``` `), o
* tres tildes (`~~~`)

en las líneas antes y después del bloque de código. Con este método no tienes que sangrar ninguna línea, pero sí necesitas usar la opción `fencedCode` en tu preámbulo:

```latex
\usepackage[fencedCode]{markdown}
```

Aquí hay un ejemplo que crea bloques de código delimitados usando 3 acentos graves (` ``` `):

````latex
\documentclass{article}
\usepackage[fencedCode]{markdown}
\begin{document}
\begin{markdown}

```
if (a > 3) {
    moveShip(5 * gravity, DOWN);
}
```

```
    <html>
      <head>
        <title>Título de la página</title>
      </head>
      <body>
        <h1>Este es un encabezado</h1>
          <p>Este es un párrafo.</p>
      </body>
    </html>
```
\end{markdown}
\end{document}
````

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown+fenced+code+blocks\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BfencedCode%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0A%0A%60%60%60%0Aif+%28a+%3E+3%29+%7B%0A++++moveShip%285+%2A+gravity%2C+DOWN%29%3B%0A%7D%0A%60%60%60%0A%0A%60%60%60%0A++++%3Chtml%3E%0A++++++%3Chead%3E%0A++++++++%3Ctitle%3EPage+Title%3C%2Ftitle%3E%0A++++++%3C%2Fhead%3E%0A++++++%3Cbody%3E%0A++++++++%3Ch1%3EThis+is+a+Heading%3C%2Fh1%3E%0A++++++++++%3Cp%3EThis+is+a+paragraph.%3C%2Fp%3E%0A++++++%3C%2Fbody%3E%0A++++%3C%2Fhtml%3E%0A%60%60%60%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Uso de bloques de código delimitados con el paquete markdown de LaTeX](/files/93b4d91b3d2b02d8c54dcc15744f633f158b700f)

#### Resaltado de sintaxis

Los bloques de código delimitados admiten resaltado de sintaxis al escribir el nombre del lenguaje después del primer conjunto de acentos graves (`` ` ``). Como ejemplo, el siguiente bloque se identifica como Javascript escribiendo el primer conjunto de acentos graves como ` ``` js `:

````latex
``` js
if (a > 3) {
    moveShip(5 * gravity, DOWN);
}
```
````

Para LaTeX, el `minted` paquete puede usarse para resaltado de sintaxis, como se muestra en el siguiente ejemplo que contiene algo de Javascript (` ``` js `) y HTML (` ``` html `):

````latex
\documentclass{article}
\usepackage{minted}
\usepackage[fencedCode]{markdown}
\begin{document}
\begin{markdown}

``` js
if (a > 3) {
    moveShip(5 * gravity, DOWN);
}
```

``` html
    <html>
      <head>
        <title>Título de la página</title>
      </head>
      <body>
        <h1>Este es un encabezado</h1>
          <p>Este es un párrafo.</p>
      </body>
    </html>
```
\end{markdown}
\end{document}
````

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown+fenced+code+blocks\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusepackage%5BfencedCode%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0A%0A%60%60%60+js%0Aif+%28a+%3E+3%29+%7B%0A++++moveShip%285+%2A+gravity%2C+DOWN%29%3B%0A%7D%0A%60%60%60%0A%0A%60%60%60+html%0A++++%3Chtml%3E%0A++++++%3Chead%3E%0A++++++++%3Ctitle%3EPage+Title%3C%2Ftitle%3E%0A++++++%3C%2Fhead%3E%0A++++++%3Cbody%3E%0A++++++++%3Ch1%3EThis+is+a+Heading%3C%2Fh1%3E%0A++++++++++%3Cp%3EThis+is+a+paragraph.%3C%2Fp%3E%0A++++++%3C%2Fbody%3E%0A++++%3C%2Fhtml%3E%0A%60%60%60%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Resaltado de sintaxis con minted y markdown](/files/0ee8e92fbb97e0096d9ca2c7f1476f6bdb2232f3)

### Listas

Los ejemplos anteriores [demuestran la creación de listas no ordenadas](#using-inline-markdown) en markdown usando el `*` carácter. Las listas ordenadas pueden crearse usando el `#` carácter si se ha especificado la opción `hashEnumerators` :

```latex
\usepackage[hashEnumerators]{markdown}
```

También es posible crear listas anidadas, como se muestra en el siguiente ejemplo:

```latex
\documentclass{article}
\usepackage[hashEnumerators]{markdown}
\begin{document}
\begin{markdown}
Aquí hay una lista numerada que contiene una lista anidada:

#. Primero, consigue estos ingredientes:

      * zanahorias
      * apio
      * lentejas

#. Hierve un poco de agua.

#. Echa todo en la olla y sigue este algoritmo:

        encuentra cuchara de madera
        destapa la olla
        remueve
        tapa la olla
        equilibra precariamente la cuchara de madera sobre el asa de la olla
        espera 10 minutos
        ir a primer paso (o apaga el quemador cuando termines)

    No golpees la cuchara de madera o se caerá.
\end{markdown}
\end{document}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+nested+list+in+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BhashEnumerators%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0AHere+is+a+numbered+list+that+contains+a+nested+list%3A%0A%0A%23.+First%2C+get+these+ingredients%3A%0A%0A++++++%2A+carrots%0A++++++%2A+celery%0A++++++%2A+lentils%0A%0A%23.+Boil+some+water.%0A%0A%23.+Dump+everything+in+the+pot+and+follow+this+algorithm%3A%0A%0A++++++++find+wooden+spoon%0A++++++++uncover+pot%0A++++++++stir%0A++++++++cover+pot%0A++++++++balance+wooden+spoon+precariously+on+pot+handle%0A++++++++wait+10+minutes%0A++++++++goto+first+step+%28or+shut+off+burner+when+done%29%0A%0A++++Do+not+bump+wooden+spoon+or+it+will+fall.%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Creación de listas numeradas usando el paquete markdown de LaTeX](/files/2f5878b81a8be70c87c99bee05f08957422e9dc8)

### Incluir LaTeX dentro de markdown

Si habilitas la `híbrida` opción, ¡puedes mezclar código LaTeX en Markdown!

```latex
\documentclass{article}
\usepackage[hybrid]{markdown}
\begin{document}

\begin{markdown}
Las ecuaciones matemáticas en línea pueden crearse así: $\omega = d\phi / dt$.
Las matemáticas en modo de exhibición pueden escribirse como:

\begin{equation}
I = \int \rho R^{2} dV
\end{equation}

\end{markdown}
\end{document}
```

[Abra este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+LaTeX+code+in+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bhybrid%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bmarkdown%7D%0AInline+math+equations+can+be+created+like+this%3A+%24%5Comega+%3D+d%5Cphi+%2F+dt%24.+%0ADisplay+math+can+be+written+as%3A%0A%0A%5Cbegin%7Bequation%7D%0AI+%3D+%5Cint+%5Crho+R%5E%7B2%7D+dV%0A%5Cend%7Bequation%7D%0A%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Uso de código LaTeX en markdown](/files/bd8be6b2b1f9cd8757de99fa7f4f14be7e115ad6)

### Incluir imágenes

* **Nota**: El siguiente ejemplo usa un archivo gráfico (`example-image.pdf`) proporcionado por el `mwe` paquete. Esos archivos gráficos se distribuyen con TeX Live y, por lo tanto, están almacenados en los servidores de Overleaf, lo que los hace disponibles como marcadores de posición de imagen, como en el siguiente ejemplo.

Las imágenes pueden incluirse en markdown escribiendo una sintaxis con el siguiente formato:

```latex
![texto alternativo](nombre-de-archivo "pie de imagen")
```

Con suerte, los nombres de los parámetros `texto alternativo`, `nombre-de-archivo` y `"pie de imagen"` describen lo que hacen. Aquí hay un ejemplo para demostrarlo:

```latex
\documentclass{article}
\usepackage[hybrid]{markdown}
% El paquete mwe proporciona imágenes de ejemplo. Cargarlo
% no es esencial porque esas imágenes están en la ruta de búsqueda de LaTeX.
% Aquí lo cargamos para mayor claridad en este ejemplo.
\usepackage{mwe}
\begin{document}
\begin{markdown}
Este ejemplo muestra cómo importar un archivo gráfico. Aquí estamos usando una
imagen de ejemplo proporcionada por el paquete `mwe`.

% Usa \setkeys{Gin} si necesitas cambiar el tamaño de visualización de una imagen

\setkeys{Gin}{width=.5\linewidth}
![Este es el texto alternativo para describir mi imagen.](example-image.jpg "Una imagen de ejemplo proporcionada por el paquete \texttt{mwe}.")
\end{markdown}
\end{document}
```

[Abre este ejemplo en Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+images+in+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bhybrid%5D%7Bmarkdown%7D%0A%25+The+mwe+package+provides+example+images.+Loading+it+is%0A%25+not+essential+because+those+images+are+in+LaTeX%27s+search+path.+%0A%25+Here%2C+we+load+it+for+clarity+in+this+example.%0A%5Cusepackage%7Bmwe%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0AThis+example+shows+how+to+import+a+graphics+file.+Here+we+are+using+an%0Aexample+image+provided+by+the+%60mwe%60+package.%0A%0A%25+Use+%5Csetkeys%7BGin%7D+if+you+need+to+change+an+image%27s+display+size%0A%0A%5Csetkeys%7BGin%7D%7Bwidth%3D.5%5Clinewidth%7D%0A%21%5BThis+is+alt+text+to+describe+my+image.%5D%28example-image.jpg+%22An+example+image+provided+by+the+%5Ctexttt%7Bmwe%7D+package.%22%29%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este ejemplo produce la siguiente salida:

![Mostrando cómo importar imágenes en markdown](/files/cc7377a9a9f87c665d24083a3a14250d0347388b)

#### Nota sobre el ancho de la imagen

Como la mayoría de los paquetes, `markdown` carga otros paquetes, incluido [`keyval`](https://ctan.org/pkg/keyval?lang=en) y [`graphicx`](https://ctan.org/pkg/graphicx?lang=en), para hacer uso de los comandos y funciones que proporcionan. Aquí, el ancho de la imagen se establece usando el `\setkeys` comando, que es proporcionado por `keyvals`. `Gin` es una "familia" de claves definida por el `graphicx` paquete.

* **Nota**: Debido a que se usa un comando de LaTeX, aquí `\setkeys`, *dentro* el `markdown` del entorno, se requiere la `híbrida` opción del paquete markdown.

## Lectura adicional

Overleaf ha publicado otros artículos sobre el uso de markdown:

* [Cómo escribir en Markdown en Overleaf](/latex/es/articulos-en-profundidad/30-how-to-write-in-markdown-on-overleaf.md)
* [Markdown en LaTeX con estilo](/latex/es/articulos-en-profundidad/32-markdown-into-latex-with-style.md)


---

# 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/base-de-conocimientos/166-writing-markdown-in-latex-documents.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.
