Strumenti per la conversione da LaTeX a Markdown
Trasforma efficientemente i documenti LaTeX in Markdown
Conversione di documenti LaTeX in Markdown è diventata essenziale per i moderni flussi di lavoro di pubblicazione, integrando generatori di siti statici, piattaforme di documentazione e sistemi di controllo delle versioni mantenendo leggibilità e semplicità. Questa guida fa parte del nostro Strumenti di Documentazione nel 2026: Markdown, LaTeX, PDF e Flussi di Lavoro di Stampa hub.

Perché convertire da LaTeX a Markdown?
LaTeX è stato lo standard d’oro per la preparazione di documenti accademici e tecnici per decenni, offrendo una qualità di composizione senza pari e un supporto per la notazione matematica. Per coloro che lavorano con documenti LaTeX, il nostro LaTeX Cheatsheet fornisce esempi completi di costrutti comuni di LaTeX. Tuttavia, il panorama moderno della pubblicazione si è evoluto e Markdown è emerso come un’alternativa leggera con significativi vantaggi:
Semplicità e leggibilità: I file Markdown sono testo puro leggibile da persone, rendendoli più facili da modificare, revisionare e controllare le versioni rispetto alla sintassi verbosa di LaTeX. Se sei nuovo a Markdown o hai bisogno di un riferimento rapido, consulta il nostro Markdown Cheatsheet per un’overview completa della sintassi e delle funzionalità.
Pubblicazione Web-First: Generatori di siti statici come Hugo, Jekyll e MkDocs utilizzano nativamente Markdown, consentendo siti web moderni e veloci a partire dalla documentazione. Piattaforme come GitHub, GitLab e vari wiki rendono automaticamente Markdown.
Collaborazione: Stakeholder non tecnici possono leggere e modificare Markdown senza imparare la sintassi LaTeX, riducendo i barriera alla collaborazione scritta.
Ecosistema degli strumenti: Gli editor moderni offrono un eccellente supporto per Markdown con anteprima live, linting e estensioni. L’integrazione con i pipeline CI/CD è semplice.
Portabilità: Markdown può essere convertito in diversi formati di output (HTML, PDF tramite LaTeX, DOCX, EPUB) utilizzando strumenti come Pandoc, mantenendo flessibilità senza la complessità di LaTeX.
Strumenti di Conversione Principali
Pandoc: Il Convertitore Universale di Documenti
Pandoc è lo strumento più potente e versatile per la conversione di documenti disponibile. Scritto dal filosofo e sviluppatore John MacFarlane, supporta più di 40 formati di markup e può convertire tra di essi in modo intelligente.
Installazione:
Prima di lavorare con le conversioni LaTeX, assicurati di avere una distribuzione LaTeX installata. Per gli utenti Windows, consulta la nostra guida su LaTeX su Windows 11 & 10: Distribuzioni, Confronti e Installazioni Passo Passo, o consulta la nostra Panoramica e Installazione di LaTeX per istruzioni di installazione multipiattaforma.
# Ubuntu/Debian
sudo apt-get install pandoc
# macOS
brew install pandoc
# Windows
choco install pandoc
# Oppure scarica da https://pandoc.org/installing.html
Conversione di base:
# Conversione semplice
pandoc document.tex -o document.md
# Con formato di output specifico
pandoc document.tex -f latex -t markdown -o document.md
# Conserva la matematica
pandoc document.tex -t markdown+tex_math_dollars -o document.md
Opzioni avanzate:
# Conversione con bibliografia
pandoc document.tex --bibliography=refs.bib --citeproc -o document.md
# Estrai immagini incorporate
pandoc document.tex --extract-media=./media -o document.md
# Documento autonomo con metadati
pandoc document.tex -s --wrap=none -o document.md
# Modello personalizzato
pandoc document.tex --template=custom.md -o document.md
LaTeXML: Conversione semantica
LaTeXML si concentra sulla conservazione della struttura semantica dei documenti LaTeX, rendendolo particolarmente adatto per contenuti matematici e scientifici che devono mantenere il significato piuttosto che solo l’aspetto.
# Installazione
sudo apt-get install latexml
# Conversione base
latexml document.tex | latexmlpost --dest=document.html -
# Con matematica come MathML
latexmlc document.tex --dest=document.html --mathimages=false
Strumenti basati su Python
Vari strumenti Python forniscono capacità di conversione programmabile. Per approcci alternativi alla conversione, in particolare quando si gestiscono contenuti web, potresti trovare utile la nostra guida su conversione di contenuti HTML in Markdown utilizzando LLM e Ollama per comprendere le tecniche moderne di conversione alimentate dall’IA.
tex2py e latex2markdown:
pip install latex2markdown
# Utilizzo da riga di comando
python -m latex2markdown document.tex document.md
Pandocfilters: Crea filtri personalizzati per Pandoc in Python per gestire costrutti specifici di LaTeX:
#!/usr/bin/env python3
from pandocfilters import toJSONFilter, Str
def custom_transform(key, value, format, meta):
if key == 'Str':
# Trasforma stringhe o pattern specifici
if value.startswith('\\customcommand'):
return Str(value.replace('\\customcommand', 'Custom: '))
if __name__ == "__main__":
toJSONFilter(custom_transform)
Utilizza con:
pandoc document.tex --filter=./custom_filter.py -o document.md
Flusso di lavoro completo di conversione
Passo 1: Preparazione
Prima della conversione, prepara il tuo documento LaTeX:
Backup dei file originali:
# Crea backup
cp -r latex_project/ latex_project_backup/
git commit -am "Backup pre-conversione"
Inventario dei comandi personalizzati:
# Estrai tutti i comandi personalizzati
grep -E '\\newcommand|\\def|\\newenvironment' *.tex > custom_commands.txt
Semplifica i pacchetti complessi: Commenta o sostituisci i pacchetti che non hanno equivalenti in Markdown:
% Sostituisci o rimuovi
% \usepackage{tikz}
% \usepackage{custom_package}
Passo 2: Conversione iniziale
Esegui la conversione con le opzioni appropriate:
# Comando di conversione completa
pandoc main.tex \
--from=latex \
--to=markdown+pipe_tables+backtick_code_blocks+fenced_code_attributes \
--wrap=none \
--extract-media=./assets \
--standalone \
--bibliography=references.bib \
--citeproc \
--output=output.md
L’estensione backtick_code_blocks assicura una corretta formattazione del codice nell’output. Per maggiori dettagli su come utilizzare i blocchi di codice in Markdown, consulta la nostra guida su Utilizzo di Blocchi di Codice Markdown.
Passo 3: Post-elaborazione
La conversione iniziale spesso richiede una pulizia:
Correzione della formattazione delle tabelle:
Pandoc potrebbe creare tabelle imbarazzanti. Utilizza sed o modifica manuale:
# Script per pulire le tabelle
sed -i 's/|:--|:--|/|:---|:---|/g' output.md
Gestione delle citazioni:
Se si utilizzano bibliografie, assicurati che le citazioni siano state convertite correttamente:
# Controlla il formato delle citazioni
grep -E '\[@\w+\]|\@\w+' output.md
Correzione dei percorsi delle immagini:
# Aggiorna i percorsi relativi
sed -i 's|!\[\](assets/|:
with open(filename, 'r') as f:
content = f.read()
issues = []
# Cerca comandi LaTeX non convertiti
latex_commands = re.findall(r'\\[a-zA-Z]+\{', content)
if latex_commands:
issues.append(f"Comandi LaTeX non convertiti: {set(latex_commands)}")
# Cerca link rotti
links = re.findall(r'\[([^\]]+)\]\(([^\)]+)\)', content)
for text, url in links:
if url.startswith('file://'):
issues.append(f"Link con protocollo file: {url}")
# Controlla delimitatori matematici
single_dollars = re.findall(r'(?<!\$)\$(?!\$)[^$]+\$(?!\$)', content)
if len(single_dollars) % 2 != 0:
issues.append("Delimitatori di matematica inline non corrispondenti")
return issues
if __name__ == "__main__":
issues = validate_markdown(sys.argv[1])
if issues:
print("Sono state trovate le seguenti problematiche di validazione:")
for issue in issues:
print(f" - {issue}")
sys.exit(1)
else:
print("Validazione completata con successo!")
sys.exit(0)
Gestione delle sfide comuni
Matematica complessa
Per documenti con molta matematica, conserva la notazione matematica LaTeX:
# Conserva esattamente la matematica LaTeX
pandoc document.tex -t markdown+raw_tex -o output.md
O utilizza estensioni specifiche per la matematica:
pandoc document.tex -t markdown_strict+tex_math_dollars+raw_tex -o output.md
Bibliografia e citazioni
Converte i file di bibliografia e gestisce le citazioni:
# Converte .bib in YAML per Pandoc
pandoc-citeproc --bib2yaml refs.bib > refs.yaml
# Utilizza nella conversione
pandoc document.tex --metadata bibliography=refs.yaml --citeproc -o output.md
Tabelle
Le tabelle LaTeX spesso vengono convertite in modo imperfetto. Considera:
- L’uso di estensioni
pipe_tablesogrid_tables - La ricostruzione manuale delle tabelle per layout complessi
- La conversione delle tabelle in immagini per casi veramente complessi
# Prova diversi stili di tabelle
pandoc document.tex -t markdown+pipe_tables -o output1.md
pandoc document.tex -t markdown+grid_tables -o output2.md
Figure e grafica
Estrai e organizza le figure:
# Estrai tutte le media in una directory organizzata
pandoc document.tex --extract-media=./figures -o output.md
# Processa con percorsi relativi
pandoc document.tex --resource-path=.:./figures --extract-media=./assets/img -o output.md
Comandi LaTeX personalizzati
Gestisci i comandi personalizzati tramite pre-elaborazione:
#!/usr/bin/env python3
import re
import sys
def expand_custom_commands(content):
# Definisci le mappature dei comandi personalizzati
commands = {
r'\\customemph\{([^}]+)\}': r'***\1***',
r'\\customsection\{([^}]+)\}': r'\n## \1\n',
r'\\code\{([^}]+)\}': r'`\1`',
}
for pattern, replacement in commands.items():
content = re.sub(pattern, replacement, content)
return content
if __name__ == "__main__":
with open(sys.argv[1], 'r') as f:
content = f.read()
expanded = expand_custom_commands(content)
with open(sys.argv[2], 'w') as f:
f.write(expanded)
Utilizzo:
# Pre-elabora, quindi converte
python expand_commands.py document.tex document_expanded.tex
pandoc document_expanded.tex -o document.md
Automazione e elaborazione in batch
Script bash per la conversione di directory
#!/bin/bash
# convert_all.sh - Converte tutti i file .tex in una directory in Markdown
INPUT_DIR="${1:-.}"
OUTPUT_DIR="${2:-./markdown_output}"
mkdir -p "$OUTPUT_DIR"
find "$INPUT_DIR" -name "*.tex" | while read -r tex_file; do
base_name=$(basename "$tex_file" .tex)
output_file="$OUTPUT_DIR/${base_name}.md"
echo "Conversione in corso: $tex_file -> $output_file"
pandoc "$tex_file" \
--from=latex \
--to=markdown \
--wrap=none \
--extract-media="$OUTPUT_DIR/media" \
--standalone \
--output="$output_file"
if [ $? -eq 0 ]; then
echo "✓ Conversione riuscita per $base_name"
else
echo "✗ Errore nella conversione di $base_name"
fi
done
echo "Conversione in batch completata!"
Processore in batch Python
#!/usr/bin/env python3
import os
import subprocess
from pathlib import Path
def batch_convert(input_dir, output_dir, extensions=['.tex']):
"""Converte tutti i file LaTeX in una directory ad albero in Markdown."""
input_path = Path(input_dir)
output_path = Path(output_dir)
output_path.mkdir(parents=True, exist_ok=True)
for ext in extensions:
for tex_file in input_path.rglob(f'*{ext}'):
# Conserva la struttura directory
relative_path = tex_file.relative_to(input_path)
output_file = output_path / relative_path.with_suffix('.md')
output_file.parent.mkdir(parents=True, exist_ok=True)
print(f"Conversione in corso: {tex_file}")
cmd = [
'pandoc',
str(tex_file),
'--from=latex',
'--to=markdown',
'--wrap=none',
f'--extract-media={output_file.parent}/media',
'--standalone',
f'--output={output_file}'
]
try:
subprocess.run(cmd, check=True, capture_output=True, text=True)
print(f"✓ Successo: {output_file}")
except subprocess.CalledProcessError as e:
print(f"✗ Errore: {tex_file}")
print(f" {e.stderr}")
if __name__ == "__main__":
import sys
input_dir = sys.argv[1] if len(sys.argv) > 1 else '.'
output_dir = sys.argv[2] if len(sys.argv) > 2 else './markdown'
batch_convert(input_dir, output_dir)
Git Hooks per la conversione continua
Automatizza la conversione al commit:
#!/bin/bash
# .git/hooks/pre-commit
# Trova tutti i file .tex modificati
changed_tex=$(git diff --cached --name-only --diff-filter=ACM | grep '\.tex$')
if [ -n "$changed_tex" ]; then
echo "Conversione dei file LaTeX modificati..."
for tex_file in $changed_tex; do
md_file="${tex_file%.tex}.md"
pandoc "$tex_file" -o "$md_file"
git add "$md_file"
echo "Convertito e aggiunto: $md_file"
done
fi
Makefile per progetti strutturati
# Makefile per la conversione da LaTeX a Markdown
SRC_DIR := latex_src
OUT_DIR := markdown_out
TEX_FILES := $(wildcard $(SRC_DIR)/*.tex)
MD_FILES := $(patsubst $(SRC_DIR)/%.tex,$(OUT_DIR)/%.md,$(TEX_FILES))
.PHONY: all clean validate
all: $(MD_FILES)
$(OUT_DIR)/%.md: $(SRC_DIR)/%.tex
@mkdir -p $(OUT_DIR)
pandoc $< \
--from=latex \
--to=markdown \
--wrap=none \
--extract-media=$(OUT_DIR)/media \
--standalone \
--output=$@
@echo "Convertito: $< -> $@"
clean:
rm -rf $(OUT_DIR)
validate: $(MD_FILES)
@for md in $(MD_FILES); do \
echo "Validazione $$md..."; \
python validate_markdown.py $$md; \
done
Integrazione con generatori di siti statici
Integrazione con Hugo
Converte LaTeX in Markdown compatibile con Hugo. Per ulteriori informazioni sull’utilizzo di Hugo e le sue varie funzionalità, consulta il nostro Hugo Cheatsheet.
#!/bin/bash
# Converte un articolo LaTeX in un post Hugo
INPUT_TEX="$1"
OUTPUT_DIR="content/posts"
POST_NAME=$(basename "$INPUT_TEX" .tex)
# Converte
pandoc "$INPUT_TEX" \
--to=markdown \
--wrap=none \
--extract-media="static/img/$POST_NAME" \
--output="temp_$POST_NAME.md"
# Aggiungi il front matter di Hugo
cat > "$OUTPUT_DIR/$POST_NAME.md" << EOF
---
title: "$(grep '\\title' "$INPUT_TEX" | sed 's/\\title{\(.*\)}/\1/')"
date: $(date +%Y-%m-%dT%H:%M:%S%z)
draft: false
math: true
---
EOF
# Aggiungi il contenuto convertito
cat "temp_$POST_NAME.md" >> "$OUTPUT_DIR/$POST_NAME.md"
# Correggi i percorsi delle immagini
sed -i "s|media/|/img/$POST_NAME/|g" "$OUTPUT_DIR/$POST_NAME.md"
# Pulizia
rm "temp_$POST_NAME.md"
echo "Creato il post Hugo: $OUTPUT_DIR/$POST_NAME.md"
Integrazione con Jekyll
#!/bin/bash
# Converte in un post Jekyll
INPUT_TEX="$1"
POST_DATE=$(date +%Y-%m-%d)
POST_NAME=$(basename "$INPUT_TEX" .tex)
OUTPUT_FILE="_posts/$POST_DATE-$POST_NAME.md"
pandoc "$INPUT_TEX" \
--to=markdown_strict \
--extract-media="assets/img" \
--template=jekyll_template.md \
--output="$OUTPUT_FILE"
echo "Creato il post Jekyll: $OUTPUT_FILE"
Linee guida e suggerimenti
1. Utilizza il controllo delle versioni per tutto
Utilizza sempre il controllo delle versioni per i sorgenti LaTeX e per gli output Markdown:
git init latex-to-markdown-project
git add latex_src/ markdown_out/
git commit -m "Iniziali sorgenti LaTeX e conversione Markdown"
2. Mantieni la documentazione della conversione
Documenta il tuo processo di conversione:
# Note di conversione
## Mappatura dei comandi personalizzati
- `\customemph{text}` → `***text***`
- `\code{text}` → `` `text` ``
## Problemi noti
- Diagrammi TikZ complessi convertiti in placeholder
- Alcune allineazioni delle tabelle richiedono un'aggiustamento manuale
## Passaggi di post-elaborazione
1. Esegui `fix_tables.py`
2. Valida con `validate_markdown.py`
3. Controlla il rendering della matematica con l'anteprima
3. Testa progressivamente
Non convertire l’intero documento in una volta:
# Converte capitolo per capitolo
pandoc chapter1.tex -o chapter1.md
# Revisa e correggi gli errori
pandoc chapter2.tex -o chapter2.md
# Revisa e correggi gli errori
# ecc.
4. Utilizza filtri Lua di Pandoc
Per trasformazioni complesse, i filtri Lua sono potenti:
-- custom_filter.lua
function Math(el)
if el.mathtype == "InlineMath" then
return pandoc.RawInline('markdown', '$' .. el.text .. '$')
else
return pandoc.RawBlock('markdown', '$$' .. el.text .. '$$')
end
end
function Image(el)
-- Aggiungi classi o attributi personalizzati
el.classes = {'responsive-image'}
return el
end
Applica con:
pandoc document.tex --lua-filter=custom_filter.lua -o output.md
5. Conserva LaTeX per elementi complessi
A volte conservare LaTeX è l’opzione migliore:
# Consente LaTeX grezzo in Markdown per casi complessi
pandoc document.tex -t markdown+raw_tex -o output.md
Questo ti permette di conservare equazioni complesse, diagrammi TikZ o pacchetti personalizzati così come sono, quindi renderli diversamente a seconda del formato di output finale.
Controllo della qualità
Test automatici
#!/usr/bin/env python3
# test_conversion.py
import subprocess
import difflib
def test_conversion():
"""Testa che la conversione produca l'output previsto."""
# Converte il file di test
subprocess.run([
'pandoc', 'test_input.tex',
'-o', 'test_output.md'
], check=True)
# Confronta con l'output previsto
with open('test_output.md', 'r') as f:
actual = f.readlines()
with open('expected_output.md', 'r') as f:
expected = f.readlines()
diff = list(difflib.unified_diff(expected, actual, lineterm=''))
if diff:
print("L'output della conversione differisce da quello previsto:")
print('\n'.join(diff))
return False
else:
print("✓ Test di conversione riuscito")
return True
if __name__ == "__main__":
import sys
sys.exit(0 if test_conversion() else 1)
Confronto visivo
Per documenti con formattazione complessa:
# Genera PDF da LaTeX
pdflatex document.tex
# Genera PDF dall'Markdown convertito tramite Pandoc
pandoc output.md -o output_from_markdown.pdf
# Confronta visivamente entrambi i PDF
Controllo dei link
#!/usr/bin/env python3
import re
import os
from pathlib import Path
def check_links(md_file):
"""Controlla che tutti i link nel Markdown siano validi."""
with open(md_file, 'r') as f:
content = f.read()
# Estrai tutti i link
links = re.findall(r'\[([^\]]+)\]\(([^\)]+)\)', content)
broken_links = []
for text, url in links:
if not url.startswith(('http://', 'https://', '#')):
# Controlla se il file esiste
link_path = Path(md_file).parent / url
if not link_path.exists():
broken_links.append((text, url))
return broken_links
if __name__ == "__main__":
import sys
broken = check_links(sys.argv[1])
if broken:
print("Link rotti trovati:")
for text, url in broken:
print(f" [{text}]({url})")
sys.exit(1)
else:
print("✓ Tutti i link validi")
sys.exit(0)
Ottimizzazione delle prestazioni
Per documenti grandi o elaborazione in batch:
Elaborazione parallela
#!/usr/bin/env python3
from multiprocessing import Pool
import subprocess
from pathlib import Path
def convert_file(tex_file):
"""Converte un singolo file."""
output_file = tex_file.with_suffix('.md')
subprocess.run([
'pandoc', str(tex_file),
'-o', str(output_file)
], check=True)
return str(output_file)
def parallel_convert(input_dir, num_processes=4):
"""Converte i file in parallelo."""
tex_files = list(Path(input_dir).rglob('*.tex'))
with Pool(num_processes) as pool:
results = pool.map(convert_file, tex_files)
return results
if __name__ == "__main__":
import sys
converted = parallel_convert(sys.argv[1])
print(f"Convertiti {len(converted)} file")
Caching
#!/usr/bin/env python3
import hashlib
import subprocess
from pathlib import Path
import pickle
CACHE_FILE = '.conversion_cache.pkl'
def file_hash(filepath):
"""Calcola l'hash del file."""
with open(filepath, 'rb') as f:
return hashlib.md5(f.read()).hexdigest()
def cached_convert(tex_file, cache):
"""Converte solo se il file è cambiato."""
current_hash = file_hash(tex_file)
if tex_file in cache and cache[tex_file] == current_hash:
print(f"Saltato {tex_file} (invariato)")
return
# Converte il file
output_file = tex_file.with_suffix('.md')
subprocess.run([
'pandoc', str(tex_file),
'-o', str(output_file)
], check=True)
# Aggiorna il cache
cache[tex_file] = current_hash
print(f"Convertito {tex_file}")
def main():
# Carica il cache
try:
with open(CACHE_FILE, 'rb') as f:
cache = pickle.load(f)
except FileNotFoundError:
cache = {}
# Processa i file
for tex_file in Path('.').rglob('*.tex'):
cached_convert(tex_file, cache)
# Salva il cache
with open(CACHE_FILE, 'wb') as f:
pickle.dump(cache, f)
if __name__ == "__main__":
main()
Risorse utili e strumenti
Strumenti essenziali
- Pandoc: https://pandoc.org/ - Convertitore universale di documenti
- LaTeXML: https://dlmf.nist.gov/LaTeXML/ - Convertitore LaTeX a XML/HTML
- pandoc-citeproc: Elaborazione della bibliografia
- pandocfilters: Libreria Python per i filtri di Pandoc
Convertitori online
- Pandoc Online: Conversioni rapide senza installazione
- Overleaf: Esporta progetti LaTeX in vari formati
- TeXLive: Distribuzione completa di LaTeX con strumenti di conversione
Documentazione e guide
- Manuale utente di Pandoc: Documentazione completa
- Stack Exchange LaTeX: Domande e risposte della comunità
- Repository GitHub con script e filtri di conversione
Supporto per editor
- VS Code: Estensioni LaTeX Workshop + Markdown All in One
- Vim: Plugin vim-pandoc
- Emacs: org-mode con supporto per LaTeX e Markdown
Strumenti di validazione
- markdown-lint: Controllore di stile Markdown
- vale: Linter di prose con guide di stile
- link-checker: Valida i link nei file Markdown
Conclusione
La conversione da LaTeX a Markdown è una necessità pratica nei flussi di lavoro moderni di pubblicazione tecnica. Sebbene Pandoc gestisca la maggior parte delle conversioni in modo eccellente, comprendere gli strumenti disponibili, le sfide comuni e le strategie di automazione garantisce conversioni fluide.
La chiave per una conversione riuscita risiede in:
- Preparazione: Pulisci e documenta il tuo LaTeX prima della conversione
- Approccio incrementale: Testa su piccole porzioni prima della conversione completa
- Automazione: Crea script per l’elaborazione in batch e la validazione
- Controllo della qualità: Implementa test e flussi di lavoro di validazione
- Manutenzione: Documenta le decisioni e mantieni gli script di conversione
Che tu stia migrando articoli accademici a un generatore di siti statici, convertendo documentazione a GitHub wiki o semplicemente cercando la flessibilità di Markdown mantenendo la qualità di LaTeX, gli strumenti e i flussi di lavoro presentati qui forniscono una solida base.
L’investimento per costruire pipeline di conversione robuste si traduce in benefici attraverso una riduzione del frizione nella pubblicazione, una migliore collaborazione e l’accesso a strumenti moderni di pubblicazione web mantenendo la rigore e la precisione del contenuto scritto in LaTeX.
Link utili
- Strumenti di Documentazione nel 2026: Markdown, LaTeX, PDF e Flussi di Lavoro di Stampa
- Markdown Cheatsheet
- LaTeX Cheatsheet
- Utilizzo di Blocchi di Codice Markdown
- Converti contenuti HTML in Markdown utilizzando LLM e Ollama
- LaTeX su Windows 11 & 10: Distribuzioni, Confronti e Installazioni Passo Passo
- Panoramica e Installazione di LaTeX
- Hugo Cheatsheet