Schede editabili con LaTeX

E’ una vita che sogno di fare una bella scheda PDF editabile, ma non ho mai trovato un modo decente di farcela. Ok, ci sono un sacco di trucchi, soprattutto con Google Document, per avere delle generiche schede editabili, ma il caro vecchio PDF editabile sembra sempre irraggiungibile (a meno di non voler pagare una costosa licenza Adobe).

Qualche settimana fa ho scoperto che in realtà, LaTeX permette di fare PDF editabili (con potenzialità notevoli) e oggi ho fatto il mio primo esperimento. Vi riporto qua una breve guida ma, prima di andare avanti, vi avviso se non avete una certa familiarità con LaTeX lasciate perdere. LaTeX è uno strumento potente e orribilmente complicato da usare. Io vado per tentativi e quindi non sono la persona adatta a insegnarvelo.

La base è piuttosto semplice (per i valori di “semplice” ritenuti ragionevoli da LaTeX), il package hyperref mette a disposizione una serie di macro che creano campi riempibili. Io al momento ne ho visti 3 e usati 2:

  • TextField per le caselle di testo “libere”
  • ChoiceMenu per i menù a tendina
  • CheckBox per le spunte

Questo è un esempio molto minimale di codice LaTeX per una scheda generica, cominciate a studiarvelo un attimo e poi approfondiamo (se volete un esempio più complesso, potete scaricare il file sheet.tex da qui):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
% Questi sono i miei include classici, per sanità
\documentclass[12pt,a4paper,openany]{memoir}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,margin=0.5in]{geometry}
\usepackage[italian]{babel}

% Questo e' il package che ci serve davvero
\usepackage{hyperref}

\begin{document}
\begin{Form}
\TextField{\textbf{Nome}}
\ChoiceMenu[default=d4]{\textbf{Mago}}{d4,d6,d8,d10,d12}
\CheckBox{Yes}
\end{Form}
\end{document}

Allora, la prima cosa importante è che i campi devono essere racchiusi da un elemento Form. L’oscura e diabolica documentazione di hyperref (me ne lamenterò anche più avanti) ci tiene a farci sapere che se ne può avere solo uno per documento. Non c’è scritto nulla sul nobilissimo porkaround dell’infilare l’intero documento in un Form, quindi dateci dentro.

Textfield

Si tratta di un campo relativamente facile: disegna un box con un testo. In stampa viene una riga sul fondo. Di base è lungo 4 pollici e alto quanto la riga di testo, ma accetta i parametri height e width (come al solito con LaTeX prende diverse unità di misura). Ad esempio, per All’Ombra di un Impero Caduto i “caselloni” dell’inventario li ho fatti così:

1
\TextField[height=1.25cm, width=8cm]{1}

Il testo passato come argomento viene presentato a sinistra del box.

CheckBox

Altro campo relativamente facile, genera una checkbox. Se volete renderlo spuntato di default passategli il parametro checked e, anche in questo caso, potete usare height e width per regolare le dimensioni.

1
\CheckBox[checked]{Yes}

Se non vi piace la spunta (e preferite i pallini alla Mondo di Tenebra), dovete usare il parametro checkboxsymbol e le cose si fanno più divertenti per una serie di motivi:

  • la documentazione che descrive i simboli giusti è nascosta nel package pifont

  • come fanno notare i commenti a questa risposta esiste la possibilità che gli editor facciano il cazzo che gli pare e ignorino i vostri bellissimi tentativi

    Insomma, non dico di lasciar perdere, ma sarà un lavoraccio. Siccome vi voglio bene, però, vi lascio come si fanno i pallini nelle checkbox:

    1
    \CheckBox[checkboxsymbol=\ding{108}]{Check }

    Almeno credo, perché Preview di OS X è uno di quegli editor stronzi che dicevamo poco sopra…

    ChoiceMenu

    Menù a tendina. Anche qua vi dovete affidare un po’ ai software dei vostri utenti per la presentazione, ma tornano sempre comodi. Come primo argomento gli passate il testo, come secondo una lista separata da virgole dei valori possibili (come gestire la presenza di virgole nei valori è lasciato come facile esercizio al lettore). Per facilità d’uso, consiglio caldamente di usare il parametro default.

    Per darvi un’idea di cosa voglia dire “affidarsi ai software”, Preview è così gentile da omaggiarmi di un po’ di opzioni extra:

    Parametri opzionali

    Se volete lanciarvi, vi tocca leggere la documentazione di hyperref, che è, francamente, scadente. O, meglio, sembra che sta roba dei form gliel’abbiano buttata dentro controvoglia.


dark
sans