Libros y Manuales con Pandoc

Documentación 23 de mar. de 2024

¿Qué es Pandoc?

Pandoc es una aplicación que se define como el "convertidor universal de documentos".

Si necesitas convertir de un tipo de documento a otro Pandoc es la herramienta que necesitas.

Soporte de conversión de documentos con Pandoc

  • Desde/Hacia formato ↔︎
  • Hacia formato
  • Desde formato

Documentos con formato de marca "ligero"
↔︎ Markdown (incluyendo CommonMark y GitHub-flavored Markdown)
↔︎ reStructuredText
→ AsciiDoc
↔︎ Emacs Org-Mode
↔︎ Emacs Muse
↔︎ Textile
→ Markua
← txt2tags
↔︎ djot

Formato HTML
↔︎ (X)HTML 4
↔︎ HTML5
→ Chunked HTML

PDF
→ Mediante herramientas auxiliares como pdflatex, lualatex, xelatex, latexmk, tectonic, wkhtmltopdf, weasyprint, prince, pagedjs-cli, context ó pdfroff.

Procesadores de Texto
↔︎ Microsoft Word docx
↔︎ Rich Text Format RTF
↔︎ OpenOffice/LibreOffice ODT

eBooks
↔︎ EPUB version 2 or 3
↔︎ FictionBook2

Formatos de Documentación
→ GNU TexInfo
↔︎ Haddock markup

Formatos TeX/LaTeX
↔︎ LaTeX
→ ConTeXt

Formatos XML
↔︎ DocBook version 4 ó 5
↔︎ JATS
← BITS
→ TEI Simple
→ OpenDocument XML

Formatos de Datos
← CSV tables
← TSV tables

Formatos Wiki
↔︎ MediaWiki markup
↔︎ DokuWiki markup
← TikiWiki markup
← TWiki markup
← Vimwiki markup
→ XWiki markup
→ ZimWiki markup
↔︎ Jira wiki markup
← Creole

Formatos de Presentación
→ LaTeX Beamer
→ Microsoft PowerPoint
→ Slidy
→ reveal.js
→ Slideous
→ S5
→ DZSlides

Formatos de paginas por capas
→ InDesign ICML
↔︎ Typst

Formato de Blocs de notas interactivos
↔︎ Jupyter notebook (ipynb)

Formato Roff
↔︎ roff man
→ roff ms

Como instalar Pandoc

En Debian es muy sencillo instalar Pandoc y el resto de herramientas y dejarlo todo correctamente configurado.
Simplemente abre la terminal y ejecuta:

sudo apt -y install pandoc texlive texlive-lang-spanish texlive-xetex

Markdown y LaTeX

Una de las ventajas de Pandoc es que permite mezclar en un documento diferentes tipos de ficheros y luego generar el resultado final en el tipo de documento deseado.

Hasta no hace mucho la manera de escribir una tesis, artículo académico o una documentación técnica correctamente formateada era usar LaTeX.
Con LaTeX, los documentos quedan perfectamente generados, pero tiene una curva de aprendizaje alta.

Con Pandoc, lo ideal es ocuparnos unicamente de escribir el texto y que se ocupe el propio programa  de generar el documento final, incluyendo números de páginas, índices, tablas de contenido, bibliografía, imágenes con textos al pie, lista de imágenes, pies de página, etc.

La manera más sencilla para escribir una artículo es escribir usando el formato Markdown, tiene una sintaxis fácil de recordar y con un simple editor de texto plano puedes comenzar a escribir.
Cuando necesitemos realizar alguna cosa complicada, podemos hacer uso de un poco de sintasix LaTeX para conseguirlo.

Pasos para escribir un libro o manual técnico

Podemos usar cualquier editor de texto plano: vim, nano, joe, pluma, etc o incluso puedes usar editor de un IDE como Codium o VS Code.

El alcance de este guía no es crear un libro con una portada espectacular, o formatos especiales de texto u opciones llamativas, ya que eso nos alejaría de la simplicidad de generar un documento sencillo y necesitaríamos incluir más complejidad a este manual.

La mejor manera de organizar la escritura de tu libro es crearte un directorio para ir dejando en él todos los ficheros que formen parte del mismo: ficheros de texto en formato markdown, imágenes e incluso algun script sencillo que nos ayude a generar el documento final.

Creamos el directorio manual-pandoc y nos situamos dentro de él:

mkdir ~/manual-pandoc
cd ~/manual-pandoc

Portada

Vamos crear nuestro primer fichero Portada.md (formato Markdown con algo de LaTeX), que va a ser una portada sencilla para nuestra publicación.

En este fichero vamos a poner el título, subtítulo, autor, fecha y una entradilla o resumen de lo que tratará el libro.

---
title: GUIA DE USO DE PANDOC
subtitle: Como usar Pandoc para generar documentación
author: Luis Gutiérrez López
date: Marzo 2024
abstract: |
    Una guía sencilla sobre como escribir libros y articulos
    usando Markdown y algo de LaTeX.
    
    Domina el poder de Pandoc para generar documentación
    con un estilo profesional.
---

\thispagestyle{empty}

\pagebreak


Si procesamos este fichero mediante Pandoc (veremos como hacerlo más adelante) podemos generar en formato PDF la portada y el resultado se vería así:

Vamos a explicar lo que hemos escrito para poder generar la portada.
Mediante las etiquetas title, subtitle, author, date y abstract, hemos definido el título, subtitulo, el autor, la fecha de publicación. así como un resumen del mismo.
Pandoc automatiza todo el proceso al generar el documento final: centrado, ajuste del tipo y del tamaño de letra.
Estos datos deben de estar "encerrados" entre dos líneas con tres guiones (- - -) para que Pandoc los localice fácilmente y los pueda usar:

--- Inicio de datos a interpretar

title: Titulo del Libro/Guía/Artículo

subtitle: Subtítulo del Libro

author: Nombre del Autor (Si solo hay un autor se usa así)

autor: Si vamos a indicar varios autores se usa de esta forma
- Primer autor
- Segundo autor

date: Fecha

abstract: | <-- Preparamos la escritura del resumen en varias líneas.

    Aqui iría el texto del resumen del artículo o libro.

    Usaremos el formato Markdown para hacer los saltos de línea.

--- Fin de datos a interpretar

\thispagestyle{empty} Esta página no tiene estilo aplicado

\pagebreak Forzamos una página nueva

Primer uso de Pandoc
Vamos a usar por primera vez Pandoc para generar un PDF con la portada, la sintaxis es la siguiente:

pandoc Portada.md -o Manual_Pandoc.pdf

Si abres el PDF generado, verás que hay partes del texto en inglés, ha escrito Abstract en vez de Resumen que es lo que desearíamos obtener.
Además el formato de página generada está tamaño US Letter y nos gustaría obtener tamaño A4.

Para indicarle a Pandoc que use otras opciones para generar el documento final debemos de incluir una serie de parámetros en su llamada para que realice lo que deseamos.
Para simplificar este proceso lo más sencillo es crear un script bash con todos los parámetros deseados.

Los profesionales de Pandoc generan un Makefile y usan el comando make para generar la documentación. Nosotros vamos a simplificarlo mediante un script sencillo.

Crearemos un fichero de nombre generarPDF.sh y escribimos lo siguiente en él:

#!/bin/bash
# Versión 0.1 para generar un manual en PDF
pandoc -V lang=es -V geometry:a4paper Portada.md -o Manual_Pandoc.pdf

Con esto por ahora nos sirve, guarda el fichero. Dale permisos de ejecución y úsalo para comprobar de nuevo cómo se genera el PDF:

chmod +x generarPDF.sh

# Usamos el script para generar el PDF
./generarPDF.sh

Perfecto, ya tenemos ajustado el idioma y el tamaño del papel.

Dividiendo el Libro en Capítulos o Secciones

Para facilitar la escritura, corrección o incluso poder reordenar los capítulos, lo mejor es escribir cada una de sus partes en varios ficheros.

Crea un fichero por cada capítulo o sección que vaya a tener tu libro.
Suponiendo que vayamos a tener 8 capítulos en nuestro libro, podemos dejarlos creados  y luego ir rellenado con texto después su contenido:

# Creamos de una sola vez los capitulos del 01 al 08

touch Capitulo-{01..08}.md

Es mejor usar una numeración de tipo 01..nn, en vez de poner nombre a cada capítulo, puedes disponer de hasta 99 capitulos ordenados y además posteriormente en el script usaremos un comodín, para facilitar la generación ordenada de los capítulos en el PDF final.

Escribiendo el primer Capítulo o Sección

Yo voy a usar indistintamente la palabra capítulo o sección aunque no sean lo mismo para simplificar la explicación.

Para escribir e indicar a Pandoc cada parte importante del documento, recuerda que vamos a usar Markdown (puedes descargarte mi chuleta para markdown)

Vamos a usar los identificadores de cabecera (ver "chuleta" Markdown) para organizar internamente cada capítulo del libro:

# Sección ó Capítulo
## SubSección / Subcapítulo

### Apartado (este tercer nivel lo usaremos poco)

Para separar párrafos de texto en Markdown, lo hacemos dejando un salto de línea en blanco entre párrafo y párrafo.

Vamos a usar el típico Lorem Ipsum para escribir de forma rápida nuestro primer capítulo, edita el fichero Capitulo-01.md y escribe en él:

# Lorem Ipsum

> Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit... - Cicero. Año 45 antes de Cristo.

## ¿Qué es Lorem Ipsum?

**Lorem Ipsum** es simplemente el *texto de relleno* de las imprentas y archivos de texto. 

Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, 
cuando un impresor (N. del T. persona que se dedica a la imprenta) 
desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen. 

No sólo sobrevivió 500 años, sino que tambien ingresó como texto de relleno en documentos electrónicos, 
quedando esencialmente igual al original. 

Fue popularizado en los 60s con la creación de las hojas "Letraset", 
las cuales contenian pasajes de Lorem Ipsum, y más recientemente con software de autoedición, 
como por ejemplo Aldus PageMaker, el cual incluye versiones de Lorem Ipsum.

## ¿De dónde viene?

Al contrario del pensamiento popular, el texto de Lorem Ipsum no es simplemente texto aleatorio. 

Tiene sus raices en una pieza clásica de la literatura del Latin, que data del año 45 antes de Cristo, 
haciendo que este adquiera mas de 2000 años de antiguedad. 

Richard McClintock, un profesor de Latin de la Universidad de Hampden-Sydney en Virginia, 
encontró una de las palabras más oscuras de la lengua del latín, "consecteur", 
en un pasaje de Lorem Ipsum, y al seguir leyendo distintos textos del latín, descubrió la fuente indudable. 

Lorem Ipsum viene de las secciones 1.10.32 y 1.10.33 de "de Finnibus Bonorum et Malorum" 
(Los Extremos del Bien y El Mal) por Cicero, escrito en el año 45 antes de Cristo. 
Este libro es un tratado de teoría de éticas, muy popular durante el Renacimiento. 

La primera linea del Lorem Ipsum, "Lorem ipsum dolor sit amet..", viene de una linea en la sección 1.10.32

El trozo de texto estándar de Lorem Ipsum usado desde el año 1500 es reproducido debajo para aquellos interesados. 

Las secciones 1.10.32 y 1.10.33 de "de Finibus Bonorum et Malorum" por Cicero son también 
reproducidas en su forma original exacta, acompañadas 
por versiones en Inglés de la traducción realizada en 1914 por H. Rackham.

## ¿Por qué lo usamos?

Es un hecho establecido hace demasiado tiempo que un lector se distraerá con el contenido del texto 
de un sitio mientras que mira su diseño. 

El motivo de usar Lorem Ipsum es que tiene una distribución más o menos normal de las letras, 
al contrario de usar textos como por ejemplo "Contenido aquí, contenido aquí". 

Estos textos hacen parecerlo un español que se puede leer. 

Muchos paquetes de autoedición y editores de páginas web usan el Lorem Ipsum como su texto por defecto, 
y al hacer una búsqueda de "Lorem Ipsum" va a dar por resultado muchos sitios web que usan este texto 
si se encuentran en estado de desarrollo. 

Muchas versiones han evolucionado a través de los años, algunas veces por accidente, otras veces a propósito (por ejemplo insertándole humor y cosas por el estilo).

## ¿Dónde puedo conseguirlo?

Hay muchas variaciones de los pasajes de Lorem Ipsum disponibles, pero la mayoría sufrió alteraciones 
en alguna manera, ya sea porque se le agregó humor, o palabras aleatorias que no parecen ni un poco creíbles. 

Si vas a utilizar un pasaje de Lorem Ipsum, necesitás estar seguro de que no hay nada avergonzante escondido en el medio del texto. 

Todos los generadores de Lorem Ipsum que se encuentran en Internet tienden a repetir trozos predefinidos cuando sea necesario, 
haciendo a este el único generador verdadero (válido) en la Internet. 

Usa un diccionario de mas de 200 palabras provenientes del latín, combinadas con estructuras muy útiles de sentencias, 
para generar texto de Lorem Ipsum que parezca razonable. 

Este Lorem Ipsum generado siempre estará libre de repeticiones, humor agregado o palabras no características del lenguaje, etc.

Modificar nuestro fichero generarPDF.sh y vamos a indicarle que ademas de la portada incluya cualquier fichero con nombre Capitulo y de tipo .md en el PDF a generar, debe quedarte así:

#!/bin/bash
# Versión 0.2   Portada + Capitulos y generar PDF
pandoc -V lang=es -V geometry:a4paper Portada.md Capitulo*.md -o Manual_Pandoc.pdf

Personalizando los Márgenes

Usamos nuestra nueva versión para generar PDFs y comprobamos el resultado, vemos que los márgenes son exagerados, así que vamos a reducir su tamaño a un valor más adecuado, por ejemplo 2 cm, volvemos a editar nuestro generarPDF.sh e incluimos la opción para ajustar simultaneamente todos los márgenes:

#!/bin/bash
# Versión 0.3 Ajustamos margenes al PDF
pandoc -V lang=es -V geometry:a4paper -V geometry:margin=2cm Portada.md Capitulo*.md -o Manual_Pandoc.pdf

Si quieres personalizar cada uno de los márgenes debes usar los siguientes modificadores:

Superior Inferior Izquierdo Derecho
-V geometry:top=Xcm -V geometry:bottom=Xcm -V geometry:left=Xcm -V geometry:right=Xcm

Usamos nuestro script para generar el PDF y el resultado está correctamente ajustado:

Ajustando la numeración de Páginas

Aunque hemos incluido en el fichero de Portada.md una etiqueta LaTeX para decir que no muestre ningún estilo: \thispagestyle{empty}, la Portada ha sido contabilizada y usada para numerar el resto de páginas.
De nuevo la solución en muy sencilla, con una instrucción de LaTex que situaremos en la primera línea de nuestro fichero Capitulo-01.md vamos a decirle que el contador de paginas se inicie a partir de esa página en 1

\setcounter{page}{1}

Si generamos de nuevo el PDF, veremos que ahora la numeración es tal y como deseamos.

Índice ó Tabla de Contenidos

Podemos hacer que Pandoc nos genere automáticamente un Índice, sólo tenemos que escribir una instrucción LaTeX en donde queramos que se inserte el Índice:

\tableofcontents

Si queremos dejar preparado el Índice para poderlo "desplazar" a nuestro gusto a cualquier parte del documento, debes crearte un fichero que se llame Indice.md

Para mayor claridad a la hora de la generación del PDF final, puedes forzar que el Índice esté en páginas diferentes al texto y no incluya ningún tipo de formato, para ello escribe:

\pagebreak
\tableofcontents
\thispagestyle{empty}
\pagebreak

Retocamos de nuevo nuestro script y situamos la inclusión del Indice en la posición que deseemos, despues de la portada ó despues de los capítulos:

Script con Índice despues de la Portada:

#!/bin/bash
# Versión 0.4 Incluimos INDICE DESPUES DE LA PORTADA
pandoc -V lang=es -V geometry:a4paper -V geometry:margin=2cm Portada.md Indice.md Capitulo*.md -o Manual_Pandoc.pdf

Script con Índice despues de los Capítulos:

#!/bin/bash
# Versión 0.4 Incluimos INDICE DESPUES DE CAPITULOS
pandoc -V lang=es -V geometry:a4paper -V geometry:margin=2cm Portada.md Capitulo*.md Indice.md -o Manual_Pandoc.pdf

Enlaces y URLs. Colores

Vamos a incluir un enlace para indicar desde donde hemos generado el Lorem Ipsum.
Abre de nuevo el fichero Capitulo-01.md, vete al final del documento e inserta las siguientes líneas, en la última de ellas ponemos el enlace en formato Markdown:

## URL para Lorem Ipsum

Existen muchas páginas para generar Lorem Ipsum.

Si buscas por internet una de las primeras que puedes encontrar es:

Lorem Ipsum generado desde: [es.lipsum.com](https://es.lipsum.com/)

\newpage

Genera de nuevo el PDF y vete hasta la última página.

Observa que al pasar el ratón sobre lo que hemos escrito se puede hacer clic y abrir la página web indicada.
Si te fijas verás que el Índice también posee propiedades de "navegación dentro del propio documento".

Vamos a personalizar los enlaces externos para que aparezcan en color "azul" al igual que en las URL de una página web.
Edita de nuevo tu fichero generarPDF.sh y déjalo de la siguiente forma:

#!/bin/bash
# Versión 0.5 Incluimos Color en URLs Externas
pandoc -V lang=es -V geometry:a4paper -V geometry:margin=2cm -V colorlinks=true -V linkcolor=black -V urlcolor=blue Portada.md Indice.md Capitulo*.md -o Manual_Pandoc.pdf

Al generar el PDF, verás que los enlaces externos ó URL aparecen en color azul:

Separar Capítulos

Si revisas lo que hemos escrito, en la última línea del documento hemos incluido \newpage esto nos permite forzar a que el siguiente capítulo empiece en una nueva página.

Expresiones y Fórmulas matemáticas

Pandoc soporta la inclusión de fórmulas matemáticas, simplificando mucho la sintaxis de LaTeX.

Para incluir una formula matemática, simplemente escribe la fórmula entre dos símbolos $ para incluirlo en la misma lína del texto ó dos $$ dobles para poder escribir formulas matemáticas en varias líneas:

$ formula en una línea $

$$
   primera formula
   segunda formula
   ....
   n-esima formula
$$

La sintaxis de escritura de fórmulas matemáticas es especial y tiene su propio formato que no vamos a ver aquí.
Si no lo conoces no importa, tan sólo fijate como Pandoc se encarga de generar las fórmulas de una forma tan elegante.

Vamos a editar ahora nuestro fichero Capítulo-02.md, en el que vamos a incluir algunas fórmulas matematicas entre el texto:

# Fórmulas Matemáticas

## Stephen Hawking

Dicen que el editor de *Breve historia del tiempo: del Big Bang a los agujeros negros* (1988) quien avisó a su autor, el físico teórico, astrofísico y divulgador **Stephen Hawking** que por cada fórmula que apareciera en el libro, reduciría a la mitad las ventas. 

Ante este aviso, Hawking decidió mencionar una única fórmula, la fórmula de Albert Einstein, $E=mc^2$.

En donde *E* es la energía, *m* es la masa y *c* es la velocidad de la luz en el vacío. 

En los agradecimientos de la obra escribio:

> Espero que esto no asuste a la mitad de mis potenciales lectores. - Stephen Hawking

## Teorema de Bayes

El teorema de Bayes, en la teoría de la probabilidad, es una proposición planteada por el matemático inglés Thomas Bayes (1702-1761)​ y publicada póstumamente en 1763.

Expresa la probabilidad condicional de un evento aleatorio $\theta$ dado **D** en términos de la distribución de probabilidad condicional del evento **D** dado $\theta$ y la distribución de probabilidad marginal de solo $\theta$.

La fórmula de Bayes, tambien conocida como Regla de Bayes, puede simplificarse en la siguiente fórmula:

$$
P(\theta|\textbf{D}) = P(\theta ) \frac{P(\textbf{D} |\theta)}{P(\textbf{D})} 
$$

Si generamos el PDF con el nuevo capítulo el resultado se ve así de espectacular:

Anotaciones a Pié de Página

Simplemente usaremos la etiqueta Markdown que nos permite incluir anotaciones.
Por ejemplo vamos a editar el Capitulo-02.md modificar el texto e incluir una parte de él como una anotación y veremos el resultado directamente:

La fórmula de Bayes[^1], puede simplificarse en la siguiente fórmula:

[^1]: Tambien conocida como "Regla de Bayes"

Bibliografía, Citas y Referencias

Una parte importante de un libro, ensayo o publicación son las Citas, Referencias y Bibliografía usada.

Si quieres usar e incluir en tu libro esta opción, lo recomendable es preparar un fichero en el que guardes toda la información que vayas recopilando para poder usarla en cualquier momento.

El formato más sencillo para usar con Pandoc es el fomato BibTeX que es un fichero de texto con extensión .bib usa los datos estructurados de una forma especial.

Veamos el formato de un fichero BitTeX para un registro y que datos puede contener:

@TIPO{IDENTIFICADOR
   campo1={Texto campo1},
   campo2={Texto campo2},
   ...
   campoN={Texto campoN}
}

También lo puedes usar escribiendolo así:

@TIPO{IDENTIFICADOR
   campo1="Texto campo1",
   campo2="Texto campo2",
   ...
   campoN="Texto campoN"
}

¿Cuantos registros puedo usar?
Puedes escribir tantos registros como necesites para tener tu fichero de citas y referencias tan extenso como desees, pero cumple siempre lo siguiente:

  • Deja un salto de línea entre registro y registro.
  • No repitas el valor del IDENTIFICADOR.

@TIPO y Campos
@Tipo: Sirve para identificar el tipo de información que va a contener ese registro, en un fichero BitTeX puedes tener registros de diferentes tipos.

Cada @Tipo necesita unos campos mínimos obligatorios y te permite incluir otros campos opcionales. Estos campos opcionales cambian segun el @Tipo que se use.

Lista de @TIPOS que puedes usar y sus Campos (obligatorios/Opcionales):

  • @article: Un Artículo de un diario, periódico o revista.
 Obligatorio: author/editor, title, journal, year, volume
 Opcionales:  number, pages, month, doi, note, key
  • @book: Un libro con un editorial.
 Obligatorio: author/editor, title, publisher, year
 Opcionales:  volume/number, series, address, edition, month, note, key, url
  • @booklet: Una obra impresa y encuadernada, pero sin editor o institución que la patrocine.
 Obligatorio: title
 Opcionales:  author, howpublished, address, month, year, note, key
  • @conference, @inproceedings: Artículo de un congreso.
 Obligatorio: author, title, booktitle, year
 Opcionales:  editor, volume/number, series, pages, address, month, organization, publisher, note, key
  • @inbook: Parte de un libro (generalmente sin título), como por ejemplo un capítulo, sección o un grupo de páginas.
 Obligatorio: author/editor, title, chapter/pages, publisher, year
 Opcionales:  volume/number, series, type, address, edition, month, note, key
  • @manual: MAnual o Documentación técnica.
 Obligatorio: title
 Opcionales:  author, organization, address, edition, month, year, note, key
  • @mastersthesis, @phdhtesis: Una Tesis Fin de Grado o de Doctorado.
 Obligatorio: author, title, school, year
 Opcionales:  type, address, month, note, key
  • @misc: Si no hay nada que te encaje para una cita o referencia.
 Obligatorio: NINGUNO
 Opcionales:  author, title, howpublished, month, year, note, key
  • @proceedings: Actas de una conferencia
 Obligatorio: title, year
 Opcionales:  editor, volume/number, series, address, month, publisher, organization, note, key
  • @techreport: Informe técnico publicado por una escuela o institución, que puede pertenecer a una serie.
 Obligatorio: author, title, institution, year
 Opcionales:  type, number, address, month, note, key
  • @unpublished: Unno documento con título y autor, pero no publicado "formalmente".
 Obligatorio: author, title, note
 Opcionales:  month, year, key

IDENTIFICADOR
Es una cadena de texto que te puedes inventar, escoge una que sea fácil de recordar para cuando la vayas a usar dentro de tu libro.
En tu fichero de bibliografía puedes incluir todos los registros de citas, referencias o bibliografía que quieras.

Sólo es necesario que el valor que uses como IDENTIFICADOR para cada registro sea único.

Ejemplos de IDENTIFICADOR:


citaEinsteinEducacion
citaEinsteinImaginacion
unix2003
lengC1978
crg1752
darwin1859
irc1988

Vamos a crear nuestro propio fichero de Bibliografía, para ello creamos un fichero al que pondremos la extensión .bib para identificarlo.

Crea el fichero bibliografia.bib, editalo y incluye lo siguiente en él:

@book{cic45ac,
 author={Cicero},
 title={Finnibus Bonorum et Malorum},
 year={45 AC},
 note={Cicero o Cicerón fue un orador, estadista y escritor romano.
       Se recomienta leer la obra Tusculanes}
}

@article{bth1763,
 author={Bayes, Thomas},
 title={An Essay towards solving a Problem in the Doctrine of Chances},
 journal={Publicaciones de la Royal Society},
 year={1763}
}

@booklet{lgl2024,
 title={Guía de Publicación con Pandoc},
 author={Gutiérrez López, Luis},
 howpublished={Blog SoloConLinux},
 month={Marzo},
 year={2024},
 note={Una publicación detallada en el que se explica paso
       a paso como elaborar una publicación con Pandoc
      }
}

@manual{latex1984,
 title={LaTeX: A Practical Macro Library for Tex},
 author={Lamport Leslie and Michel Goossens and Frank Mittelbach and Alexander Samarin},
 year={1984}
}

Para usar/incluir una cita en la parte del documento que desemos simplemente debemos escribir el IDENTIFICADOR que hemos creado pero precedido de una arroba. Ejemplo:

  ...
El teorema de Bayes, en la teoría de la probabilidad, es una proposición planteada por el matemático inglés Thomas Bayes (1702-1761) y publicada póstumamente en 1763. @bth1763
  ...

A mi me gusta formatear las "citas" y por ejemplo poner su texto en letra subíndice para que se vea más claro que no forma parte del texto normal:

Tiene sus raices en una pieza clásica de la literatura del Latin, que data del año 45 antes de Cristo, haciendo que este adquiera mas de 2000 años de antiguedad. ~@cic45ac~

Si prefieres usar otro formato, cursiva, superíndice o negrita, para resaltar la cita, tan sólo tienes que usar el código Markdown en el @identificador.

Para que las citas se impriman en nuestro documento debemos incluir una serie de opciones extra en la llamada a Pandoc:

--bibliography=bibliografia.bib --citeproc

La bibliografía se imprime por defecto siempre al final del documento.
Vamos a crear una pagina sencilla, la vamos a usr para indentificar que lo que sale en esa parte del documente se trata de bibliografía. Creamos un fichero y le ponemos de nombre Bibliografia.md y escribimos en él lo siguiente:

\newpage

# Bibliografía, Citas y Referencias

Editamos nuestro script, incluimos las opciones para generar las citas, además lo situamos en la última posición de todos nuestros fichero de tipo .md
De esta forma se incluira en la última págin al generar el PDF:

#!/bin/bash
# Versión 0.6 Incluimos Bibliografía
pandoc -V lang=es -V geometry:a4paper -V geometry:margin=2cm -V colorlinks=true -V linkcolor=black -V urlcolor=blue --bibliography=bibliografia.bib --citeproc Portada.md Indice.md Capitulo*.md Bibliografia.md -o Manual_Pandoc.pdf

Si quisieramos incluir bibliografía no usada (no citada), el truco es editar de nuevo el fichero Bibliografía.md e incluir el parámetro nocite: y luego con @ID incluir cada una de las citas deseadas.
También podemos usar @* para incluir todas las citas.

El fichero quedaría de la siguiente forma:

\newpage

# Bibliografía, Citas y Referencias

\newline

---
nocite: |
  @*
...

El resultado con toda la bibliografía incluida se vería así:

Usa el comando \newline para separar las citas de la cabecera del título de Bibliografía y Citas.

Descarga la "Guía de Uso de Pandoc"

Si quieres saber como incluir una portada en tu Libro, lo dejo explicado en:

Generar Portadas para Libros
La Portada “No hay que valorar un libro por su portada”, pero lo cierto es que una portada llamativa hace que la gente se fije más en un libro que en otro aun cuando el contenido pueda ser mejor o peor entre ellos. En nuestro caso, si hemos realizado un
Ejemplo de Portada para el Libro

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux