Il modo in cui Cal. scrive
È un po’ complicato ed ha avuto bisogno di un po’ di tempo per arrivare al grado di collaudamento attuale. Esso si compone di diversi software, dal basso verso la tastiera:
- LaTeX
- Dovrebbe andare bene una distribuzione qualsiasi, a patto che pandoc sappia dove trovarla. Quindi deve trovarsi in
$PATH
e tutte le altre belle cose che il tuo sistema tenta di nasconderti. - Pandoc
- Convertitore universale di documenti. Scaricabile qui.
make
- Questo dovrebbe già essere su ogni sistema degno di questo nome. Su windows manca. Non ho idea di come possa essere sostituito; forse Cygwin lo implementa…
- Emacs
- Un intero sistema operativo al quale manca un editor decente, dicono i suoi detrattori. Questa è la parte meno fondamentale di tutte, a dir il vero. Usate l’editor che più vi piace.
Makefiles
I vari software una volta installati dovrebbero comunicare senza necessità di interventi ulteriori.
Il makefile, per il quale si ringraziano varie persone trovate prima o poi su google, che cal di solito invoca con M-! make <RET>
, fa questa roba:
- elenca tutti i file
.text
nella dir in cui viene invocato, e - sostituendo l’estensione genera una lista di target
.pdf
che poi - compila con le opzioni scelte.
PANDOC = pandoc
PANVARS = --var=papersize:a4 --var=lang:it-IT
FILES = $(patsubst %.text,%.pdf,$(wildcard *.text))
all: $(FILES)
%.pdf: %.text makefile
$(PANDOC) $(PANVARS) -o $@ $< && open $@
%.tex: %.text makefile
$(PANDOC) $(PANVARS) --standalone -o $@ $<
Ci potrebbero essere modifiche per supportare una bibliografia o inserire altra roba arbitraria nel preambolo, strumento che uso per includere siunitx
, di solito, o per ridimensionare la dimensione massima delle immagini nei documenti. Per esempio:
PANDOC = @pandoc
PANVARS = --var=papersize:a4 --var=lang:it-IT \
--var=header-includes:'\frenchspacing' \
--var=header-includes:'\setkeys{Gin}{width=0.75\maxwidth}' \
--bibliography=$*.bib \
--latex-engine=xelatex --var=mainfont:'Myriad Pro'
PIPE = > /dev/null
FILES = $(patsubst %.text,%.pdf,$(wildcard *.text))
all: $(FILES)
%.pdf: %.text makefile %.bib
$(PANDOC) $(PANVARS) -o $@ $< $(PIPE) && open $@
%.tex: %.text makefile %.bib
$(PANDOC) $(PANVARS) --standalone -o $@ $< $(PIPE)
Emacs
Markdown-mode
è abbastanza funzionante, se si ricorda di abilitare la matematica nei documenti (setq markdown-enable-math t)
, mi pare; in modo che non tratti gli underscore dei pedici come comandi per corsivo, e se si affianca ad adaptive-wrap
.
Un miglioramento notevole viene ottenuto cambiando il cursore di default di emacs ed impostando un po’ di roba semplice nel .emacs
:
- riconoscimento automatico delle estensioni per markdown;
- evidenziazione della riga corrente
hl-line-mode
; - “a capo automatico” morbido
visual-line-mode
; - font proporzionale (migliora di molto la leggibilità, quando non si tratta di codice)
variable-pitch-mode
.
(delete-selection-mode 1) ; se cominci a scrivere con del testo selezionato, ciò che scrivi sostituisce la selezione
;; Markdown mode
(autoload 'markdown-mode "markdown-mode"
"Major mode for editing Markdown files" t)
(add-to-list 'auto-mode-alist '("\\.text\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))
;; Text mode (applies to Markdown & LaTeX, too)
(add-hook 'text-mode-hook 'hl-line-mode)
(add-hook 'text-mode-hook 'adaptive-wrap-prefix-mode)
(add-hook 'text-mode-hook 'turn-on-visual-line-mode); a capo automatico
(add-hook 'text-mode-hook 'variable-pitch-mode); font proporzionale
Qui una volta c’era una descrizione di come configurare il correttore automatico con Emacs. Era poco utile e un sacco complicata, oltre che probabilmente ormai rotta.