Autoproduzione falsarighe con metapost (per programmatori)
Inviato: domenica 7 dicembre 2014, 13:18
Un saluto a tutti, è un po' che non mi faccio sentire ma gli impegni sono tanti. Eppoi adesso mi sto limitando a fare esercizio col Palmer (ho completato la trascrizione del secondo libro del "de Bello Gallico" di Giulio Cesare, che sto approfittando per leggere tipo racconto di avventure! Niente di nuovo, insomma).
Nel mentre, ho trovato un linguaggio di programmazione text-oriented, della famiglia dei vari tex e latex, chiamato "metapost", che permette di stampare con estrema facilità dei fogli con righe e margini, tipo quaderno. Il compilatore è liberamente disponibile sulle varie distribuzioni di Linux, non so però se c'è qualcosa di analogo per Windows.
Venendo al sodo, si scrive con un normale editor di test un sorgente, estremamente semplice ed intuitivo:
Ecco tutto, sembra complicato ma per chi ha un minimo di dimestichezza con la programmazione è sicuramente intuitivo (ci ho messo poche decine di minuti a prendere un esempio fatto per simulare il layout delle righe dei quaderni di seconda elementare, e rivederlo per farmi un layout con gli spazi per il Palmer).
Una volta creato il sorgente, lo si salva con estensione ".mp", per esempio "falsariga_palmer.mp"; da questo, si può generare direttamente un PDF col comando "mptopdf" (più nome file).
Il risultato è il seguente (il forum impedisce di postare dei PDF, ne faccio un sample in jpg):
In questo modo si possono creare delle falserighe "personalizzate" per ogni esigenza si voglia, senza sottostare ai limiti dei generatori che si trovano "online": utili, ma spesso limitati.
Nel mentre, ho trovato un linguaggio di programmazione text-oriented, della famiglia dei vari tex e latex, chiamato "metapost", che permette di stampare con estrema facilità dei fogli con righe e margini, tipo quaderno. Il compilatore è liberamente disponibile sulle varie distribuzioni di Linux, non so però se c'è qualcosa di analogo per Windows.
Venendo al sodo, si scrive con un normale editor di test un sorgente, estremamente semplice ed intuitivo:
Codice: Seleziona tutto
outputtemplate := "%j.mps";
% Foglio con righe guida per metodo Palmer
beginfig(1)
% Pagina A4
pagewidth := 210mm;
pageheight := 297mm;
% h1 = riga sopra/sotto; h2 = riga del testo; hs = margine superiore;
% hi = margine inferiore.
h1 := 4mm;
h2 := 3mm;
hs := 27.5mm; % 1"
hi := 13.75mm; % 1/2"
% posizione dei margini verticali
x1 := 10mm;
x2 := pagewidth - x1; % simmetrico
% funzione di disegno riga verticale
def vline(expr x, sp, col) =
draw (x, -0-sp/2) -- (x, -pageheight+sp/2)
withpen pencircle scaled sp
withcolor col;
enddef;
% funzione di disegno riga orizzontale
def hline(expr y, sp, col) =
draw (0+sp/2, y) -- (pagewidth-sp/2, y)
withpen pencircle scaled sp
withcolor col;
enddef;
% funzione che compone i "blocchi" delle righe, formati dalla riga superiore di
% riferimento, da quella di base (più grossa), e da quella "inferiore" che delimita
% le gambe discendenti (e, incidentalmente, forma il limite per le ascendenti
% successive: volendo staccare i blocchi, occorrerebbe una riga in più).
def row (expr y) =
hline (y-h1, 0.36pt, 0.5white);
hline (y-h1-h2, 0.56pt, 0.0white); % piu' grossa e scura la linea di base
hline (y-2*h1-h2, 0.36pt, 0.5white);
enddef;
% Inizio il disegno effettivo.
% Margini:
vline (x1, 0.32pt, 0.8red);
vline (x2, 0.32pt, 0.8red);
% Prima riga orizzontale:
hline (-hs, 0.28pt, 0.7white);
% Le altre righe orizzontali, raggruppate nei "blocchi" generati dalla funzione "row".
for i:=0 upto 22:
row (-hs-i*(2*h1+h2));
endfor;
endfig;
end
Una volta creato il sorgente, lo si salva con estensione ".mp", per esempio "falsariga_palmer.mp"; da questo, si può generare direttamente un PDF col comando "mptopdf" (più nome file).
Il risultato è il seguente (il forum impedisce di postare dei PDF, ne faccio un sample in jpg):
In questo modo si possono creare delle falserighe "personalizzate" per ogni esigenza si voglia, senza sottostare ai limiti dei generatori che si trovano "online": utili, ma spesso limitati.