[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
di Massimo Piai <pxam67 (ad) virgilio·it>
Le «estensioni PXAM» sono caratteristiche di Alml curate da Massimo Piai. |
A partire dall'estate del 2005, Alml permette di incorporare codice relativo a svariati tipi di minilinguaggi grafici.
È possibile incorporare codice relativo ai pacchetti di macro *roff denominati Pic, Tbl, Eqn attraverso gli elementi picimg, tblimg, eqnimg rispettivamente; l'utilizzo è abbastanza analogo a quelli di altri elementi simili.
Nei listati 393.1, 393.2, 393.3 vengono presentati tre esempi di incorporazione nell'ambito degli elementi picimg, tblimg, eqnimg rispettivamente; corrispondentemente, le figure 393.4, 393.5, 393.6 illustrano l'aspetto finale delle immagini in relazione al codice presentato.
Listato 393.1. Codice incorporato: macro *roff (Pic).
|
Listato 393.2. Codice incorporato: macro *roff (Tbl).
|
Listato 393.3. Codice incorporato: macro *roff (Eqn).
|
Figura 393.4. Codice incorporato: Pic.
|
Figura 393.5. Codice incorporato: Tbl.
|
Figura 393.6. Codice incorporato: Eqn.
|
Si notino le seguenti particolarità:
non si deve delimitare il codice mediante le macro .PS e .PE, .TS e .TE, .EQ e .EN rispettivamente, sebbene esse siano previsti in un sorgente *roff normale;
il codice Pic e il codice Tbl possono includere codice Eqn, a patto di delimitare tale codice mediante una coppia di caratteri dollaro ($) (il listato 393.7 e la figura 393.8 illustrano un esempio nel primo caso).
Listato 393.7. Codice incorporato: Eqn dentro Pic.
|
Figura 393.8. Codice incorporato: Eqn dentro Pic.
|
È possibile incorporare codice relativo ai programmi del pacchetto GNU Plotutils,(1) Graph, Plot, Pic2plot, Spline, Ode attraverso gli elementi pugraphimg, puplotimg, pupic2plotimg, pusplineimg e puodeimg rispettivamente; l'utilizzo è abbastanza analogo a quelli di altri elementi simili.
Nei listati 393.9, 393.10, 393.11, 393.12, 393.13 vengono presentati cinque esempi di incorporazione nell'ambito degli elementi pugraphimg, puplotimg, pupic2plotimg, pusplineimg, puodeimg rispettivamente; corrispondentemente, le figure 393.14, 393.15, 393.16, 393.17, 393.18 illustrano l'aspetto finale delle immagini in relazione al codice presentato.
Listato 393.9. Codice incorporato: GNU Plotutils (Graph).
|
Listato 393.10. Codice incorporato: GNU Plotutils (Plot).
|
Listato 393.11. Codice incorporato: GNU Plotutils (Pic2plot).
|
Listato 393.12. Codice incorporato: GNU Plotutils (Spline).
|
Listato 393.13. Codice incorporato: GNU Plotutils (Ode).
|
Figura 393.14. Codice incorporato: Graph.
|
Figura 393.15. Codice incorporato: Plot.
|
Figura 393.16. Codice incorporato: Pic2plot.
|
Figura 393.17. Codice incorporato: Spline.
|
Figura 393.18. Codice incorporato: Ode.
|
Si notino le seguenti particolarità:
la prima riga del codice Graph deve essere un commento (eventualmente vuoto), ossia una riga che inizi con il carattere cancelletto (#); quanto segue il primo carattere viene interpretato come riga di comando da passare all'eseguibile graph, al fine di consentire l'uso delle varie opzioni del programma;
quanto detto al punto precedente si applica anche al caso del codice Spline e del codice Ode, con la differenza che in questi casi sono due le righe di commento obbligatorie, corrispondenti a righe di comando per gli eseguibili spline e graph, oppure ode e graph, rispettivamente (poiché entrambe le coppie di eseguibili contribuiscono, in una pipeline, alla generazione dell'immagine);
a causa del meccanismo con cui alml estrae le righe di comando dalla sezione marcata CDATA, è essenziale che non ci siano spazi o righe vuote fra il marcatore precedente e l'inizio della sezione stessa; ad esempio, la riga 3 nel seguente listato deve terminare con il carattere >:
|
il codice Pic2plot deve iniziare con la macro .PS e terminare con la macro .PE; inoltre si tenga presente che l'elemento picimg (sezione 393.1) fornisce un supporto più completo per chi desideri utilizzare codice Pic (ad esempio consente l'uso dei colori, nonché l'inclusione di codice Eqn).
È possibile incorporare codice grafico generico, nel senso di una qualunque riga di comando associata a codice in input, a patto che tale riga di comando sia opportunamente formattata e il comando emetta codice EPS; si utilizza a tal fine l'elemento genericimg.
Nei listati 393.20 e 393.21 vengono presentati due esempi di incorporazione nell'ambito dell'elemento genericimg; corrispondentemente, le figure 393.22 e 393.23 illustrano l'aspetto finale delle immagini in relazione al codice presentato.
Listato 393.20. Codice incorporato generico.
|
Listato 393.21. Codice incorporato generico: un caso limite.
|
Figura 393.22. Codice incorporato generico.
|
Figura 393.23. Codice incorporato generico: un caso limite.
|
Si notino le seguenti particolarità:
la prima riga del codice ha la forma di un commento standard; quanto segue il carattere cancelletto (#) è lo schema del comando da eseguire: in esso possono figurare (in guisa di metavariabili) le stringhe INPUT e OUTPUT, le quali rappresentano rispettivamente l'input e l'output della riga di comando; l'input viene in pratica prelevato dalle rimanenti righe del codice, mentre l'output deve essere in formato EPS;
le righe del codice successive alla prima devono costituire un input valido per la riga di comando, ma eventualmente possono essere assenti, nel caso in cui la riga di comando non necessiti di input (listato 393.20 e figura 393.23);
valgono anche nel caso del codice generico le osservazioni relative agli spazi o alle righe vuote immediatamente prima dell'inizio della sezione marcata CDATA, come nel caso del codice GNU Plotutils Graph, Spline e Ode;
per ragioni di sicurezza la riga di comando non viene eseguita (e l'immagine, di conseguenza, non viene generata), a meno che l'eseguibile alml non venga invocato utilizzando l'opzione --embedded-script-enable.
È possibile incorporare codice per tracciare diagrammi e annotazioni scacchistiche di vario genere attraverso gli elementi fenimg, fenitimg, sanimg, sanitimg e skakimg.
L'elemento fenimg permette di definire una posizione sulla scacchiera mediante la notazione Forsyth-Edwards (FEN ovvero Forsyth-Edwards Notation). La notazione FEN permette di indicare i pezzi mediante singole lettere che in pratica costituiscono l'iniziale del nome del pezzo stesso nella lingua inglese (K significa «King» ossia il re bianco, k significa «king» ossia il re nero, ecc.); volendo utilizzare le iniziali dei nomi nella lingua italiana è necessario utilizzare l'elemento fenitimg.
Nel listato 393.24 vengono presentati due esempi di incorporazione nell'ambito degli elementi fenimg e fenitimg rispettivamente; corrispondentemente, la figura 393.25 illustra l'aspetto finale delle immagini in relazione al codice presentato.
Listato 393.24. Codice incorporato FEN.
|
Figura 393.25. Codice incorporato FEN: nel primo diagramma i pezzi sono stati indicati secondo la denominazione in lingua inglese, nel secondo diagramma secondo la denominazione italiana.
|
L'elemento sanimg permette di definire una posizione sulla scacchiera come risultato di una serie di mosse a partire dalla posizione iniziale, espresse mediante la notazione algebrica standard (SAN ovvero Standard Algebraic Notation). Nella notazione SAN i pezzi vengono indicati mediante singole lettere che in pratica costituiscono l'iniziale del nome del pezzo stesso nella lingua inglese; volendo utilizzare le iniziali dei nomi nella lingua italiana è necessario utilizzare l'elemento sanitimg.
Nel listato 393.26 vengono presentati due esempi di incorporazione nell'ambito degli elementi sanimg e sanitimg rispettivamente; corrispondentemente, la figura 393.27 illustra l'aspetto finale delle immagini in relazione al codice presentato.
Listato 393.26. Codice incorporato SAN: partita svoltasi a Belgrado, il 4 novembre 1992, fra Bobby Fischer e Boris Spassky.
|
Figura 393.27. Codice incorporato SAN: nel primo diagramma i pezzi sono stati indicati secondo la denominazione in lingua inglese, nel secondo diagramma secondo la denominazione italiana.
|
Per esigenze più sofisticate di illustrazione scacchistica si può utilizzare l'elemento skakimg: tale elemento consente di indicare situazioni scacchistiche di una certa complessità, comprese annotazioni grafiche sulla scacchiera, mediante i comandi definiti in TeX-Skak, un pacchetto per scrivere di scacchi in LaTeX.
Nel listato 393.28 viene presentato un esempio di incorporazione nell'ambito dell'elemento skakimg; corrispondentemente, la figura 393.29 illustra l'aspetto finale dell'immagine in relazione al codice presentato.
Listato 393.28. Codice incorporato TeX-Skak.
|
Figura 393.29. Codice incorporato TeX-Skak.
|
È possibile incorporare codice per tracciare grafici e diagrammi strutturati di vario genere attraverso l'elemento jgraphimg, descrivendo l'immagine desiderata nel linguaggio di input del programma Jgraph.
Nel listato 393.30 viene presentato un esempio di incorporazione nell'ambito dell'elemento jgraphimg; corrispondentemente, la figura 393.31 illustra l'aspetto finale dell'immagine in relazione al codice presentato.
Listato 393.30. Codice incorporato Jgraph.
|
Figura 393.31. Codice incorporato Jgraph.
|
Algebraic chess notation
Forsyth-Edwards Notation
1) GNU Plotutils GNU GPL
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome alml_estensioni_pxam.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]