mywiki/markdown/pandoc.md

4.5 KiB
Raw Blame History

Pandoc

Pandoc è un tool open source da linea di comando scritto che serve a convertire da un linguaggio di markup ad un altro in modo semplice e veloce. Supporta svariati formati tra cui:

  • latex
  • markdown
  • html

Inoltre è in grado di convertire i file da un determinato linguaggio di markup ad un formato pdf, epub, ecc.

Installazione

sudo apt install pandoc texlive-latex-extra texlive-latex-base texlive-xetex texlive-publishers texlive-fonts-extra

Sintassi

Per convertire un file da un formato allaltro basterà eseguire:

pandoc -s nomefile.formato -o nomefile.nuovoformato

Per esempio, per convertire un file markdown note.md in un file pdf note.pdf:

pandoc -s note.md -o note.pdf

Altre opzioni

  • -f FORMAT: specifica il formato di input del documento
  • -t FORMAT: specifica il formato di output del documento
  • -o FILE: specifica il nome del file di output
  • -s o --standalone: crea un documento autonomo con intestazione e piè di pagina
  • --template=FILE: specifica il file di modello yaml da utilizzare
  • -V KEY=VALUE, ovvero --variable=KEY:VALUE: imposta una variabile di modello
  • -H FILE, --include-in-header=FILE: include il contenuto del file specificato nell'intestazione del documento
  • --toc: per aggiungere un indice, utile per pdf e epub
  • --number-sections: per numerare sezioni, capitoli e sottocapitoli, utile per la conversione nel formato pdf e epub
  • --pdf-engine=xelatex: per specificare un motore di conversione alternativo a quello predefinito. Questa scelta rispetto al motore pre-impostato, pdflatex, deriva dal fatto che con xelatex è possibile creare pdf anche da documenti che hanno caratteri speciali in formato UnicodeQuesta scelta rispetto al motore pre-impostato, pdflatex, deriva dal fatto che con xelatex è possibile creare pdf anche da documenti che hanno caratteri speciali in formato Unicode
  • -V lang=it: con l'opzione -V vengono introdotte le variabili. Serve per comunicare a LaTeX di utilizzare la sintassi italiana
  • -V colorlink: serve per rendere i link colorati
  • -V table-use-row-colors=true: le righe delle tabelle sono colorate alternativamente

Ecco un esempio di comando:

pandoc -s file.md -f markdown -t pdf --pdf-engine=xelatex -V lang=it -V colorlinks=true -V linkcolor=teal -V urlcolor=teal -V toccolor=gray --template eisvogel --listings -V table-use-row-colors=true -o file.pdf

Tema personalizzato

Qui un ottimo tema personalizzato: https://github.com/Wandmalfarbe/pandoc-latex-template

Installazione del tema personalizzato

cd 
wget -c https://github.com/Wandmalfarbe/pandoc-latex-template/blob/master/eisvogel.tex

mkdir -p ~/.local/share/pandoc/templates/
mv eisvogel.tex ~/.local/share/pandoc/templates/

Maggiori informazioni sulle variabili di Pandoc: https://pandoc.org/MANUAL.html#variables-for-latex

Personalizzare header

Al principio del file .md:

---
title: "The Document Title"
author: [Example Author, Another Author]
date: "2017-02-20"
keywords: [Markdown, Example]
...
---

Alias

Per semplificare, è consigliato crearsi un alias nel file ~/.bashrc:

alias pd="pandoc -f markdown -t pdf --pdf-engine=xelatex -V lang=it -V colorlinks=true -V linkcolor=teal -V urlcolor=teal -V toccolor=gray --template eisvogel --listings -V table-use-row-colors=true"

Alla conversione successiva da file markdown a pdf sarà sufficiente digitare:

pd -s file.md -o file.pdf

Collegamenti