mywiki/markdown/pandoc.md

102 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```bash
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:
```bash
pandoc -s nomefile.formato -o nomefile.nuovoformato
```
Per esempio, per convertire un file markdown note.md in un file pdf note.pdf:
```bash
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:
```bash
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](https://github.com/Wandmalfarbe/pandoc-latex-template)
### Installazione del tema personalizzato
```bash
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](https://pandoc.org/MANUAL.html#variables-for-latex)
### Personalizzare header
Al principio del file .md:
```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`:
```bash
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:
```bash
pd -s file.md -o file.pdf
```
## Collegamenti
- [https://linuxhub.it/articles/howto-convertire-i-formati-con-pandoc/](https://linuxhub.it/articles/howto-convertire-i-formati-con-pandoc/)
- [https://www.avvocati-e-mac.it/blog/2019/4/9/compilare-un-atto-telematico-in-markdown-con-pandoc](https://www.avvocati-e-mac.it/blog/2019/4/9/compilare-un-atto-telematico-in-markdown-con-pandoc)
- [https://www.howtogeek.com/678022/how-to-use-pandoc-to-convert-files-on-the-linux-command-line/](https://www.howtogeek.com/678022/how-to-use-pandoc-to-convert-files-on-the-linux-command-line/)
- [https://jdhao.github.io/2019/05/30/markdown2pdf_pandoc/](https://jdhao.github.io/2019/05/30/markdown2pdf_pandoc/)
- [https://learnbyexample.github.io/customizing-pandoc/](https://learnbyexample.github.io/customizing-pandoc/)
- [https://it.wikibooks.org/wiki/Scrivere_in_modo_sostenibile_usando_il_testo_semplice_con_Pandoc_e_Markdown](https://it.wikibooks.org/wiki/Scrivere_in_modo_sostenibile_usando_il_testo_semplice_con_Pandoc_e_Markdown)