Questa versione: http://www.elegio.it/mc2/convenzioni-proformulex10.html

In rete versione non x10:
http://www.elegio.it/mc2/convenzioni-proformule.html
http://www.elegio.it/mc2/libreria-proformule.txt

Test - scrittura formule (200907 aggiornato 201212 e successivamente nel 201405 )

Uso sette caratteri di controllo ( _ ! \ | ^ ) che vanno usati dopo il carattere su cui agiscono ( ossia postposti e non anteposti come viene di solito fatto con un carattere di controllo ) ed uso un carattere ausiliario ( # ) opzionale che influenza la modalità di azione sul carattere che lo segue. Ecco come funzionano questi caratteri speciali [ metto in parentesi il valore Unicode utile per mascherare il carattere di controllo all'analisi della funzione convertox11(da,ad) che opera la conversione dei testi]:

Attenzione Se alla function convertox11 vengono passati non due ma tre argomenti si ottiene il cambiamento del funzionamento dei caratteri "!","" e "" nel seguente modo:
non vengono più generati apici ma solo pedici. Quello che prima sarebbe stato un apice viene visualizzato come pedice e quello che prima sarebbe stato un pedice viene visualizzato ancora come un pedice ma... sottolineato. Questa convenzione può venire applicata per evitare che si generi confusione tra esponenti ed apici ossia indici controvarianti. Solo gli esponenti sono trattati come apici mentre gli indici sia controvarianti che covarianti sono trattati come pedici e gli indici covarianti sono pedici sottolineati ed eventualmente di un diverso colore per facilitare il loro riconoscimento.

Ecco un altro perfezionamento: se il primo argomento della convertox11 non è una stringa ma è una stringa racchiusa tra parentesi quadre ossia una Array di un unico argomento consistente nella stringa identificativa ( l' id della marca ) del testo da convertire, tutto va come prima ma il testo da convertire viene reso invisibile dato che la sua visualizzazione è inutile a meno che, per scopi didattici o di addestramento all'uso di questa libreria, non si voglia vedere come va scritto il testo che poi va convertito nel modo voluto...

Nei casi in cui i caratteri di controllo non agiscono vengono editati come sono. Se occorre invece disattivare la loro azione nei casi in cui normalmente agirebbero, basta anteporre il carattere ausiliario "#". Per esempio se scrivo 5! ottengo un pedice ma se voglio indicare il 5 fattoriale scrivo 5#! perché il carattere ausiliario disattiva l'azione del carattere di controllo "!".
Alternativamente si può usare la sequenza #*_ che non produce nessun carattere, neppure uno spazio bianco, ma che può servire a impedire l'entrata in funzione dei caratteri di controllo.

Per fare esperimenti per controllare come funzionano le precedenti convenzioni di scrittura, usare la seguente area di testo:




Ottengo:
?

In conclusione: queste convenzioni sono state pensate per velocizzare la scrittura di formule con apici e pedici mentre per la scrittura di nomi espressivi, quando si scrivono sorgenti di linguaggi di programmazione, sono più adatte le convenzioni riportate in: http://www.elegio.it/mc2/convenzioni-tensoriali.html dato che richiedono solo l'uso di caratteri alfanumerici e non pongono limiti alla lunghezza dei nomi degli indici. Quelle convenzioni sono però più prolisse di quelle presentate in questo documento e quindi sono consigliabili queste per la realizzazione di pagine HTML.

Quelle in rete sono convenzioni per chi programma che considero superate da altre convenzioni che considero migliori perché separano i nomi degli indici, che possono essere scelti con grande arbitrarietà, dalla indicazione del loro tipo ossia se sono indici controvarianti da pensare scritti in alto ( o in basso non sottolineati) o indici covarianti da pensare scritti in basso ( o anche sottolineati per distinguerli dai controvarianti non sottolineati ).
Le convenzioni da linguaggio di programmazione che attualmente preferisco, nel 2012, riportano in sequenza l'indicazione del :

  1. rango del tensore ( che serve per capire quanti sono gli indici che servono)
  2. numero di eventuali derivate totali ( i loro simboli monocarattere )
  3. il tipo di indici ( cifre pari per i covarianti e dispari per i controvarianti ) che devono essere tante cifre quante indicate dal rango. Seguo ancora la regola di usare cifre dispari, in particolare 1, per gli indici controvarianti e pari, in particolare 2, per quelli covarianti e per segnalare il fatto che l'indice sia stato ottenuto derivando un tensore di rango inferiore, usare 8 per la derivata covariante, 0 per quella ordinaria e dunque non tensoriale e 9 per la derivata covariante trasformata in controvariante.
  4. da ultimo i nome monocarattere da dare agli indici ossia nomi che possono cambiare da una formula all'altra...

In pratica, senza usare la libreria qui applicata, con le convenzioni da programmatore che attualmente preferisco, indicherò con g222ik il tensore metrico covariante che ha rango 2 e due indici covarianti e con g211ik il tensore metrico controvariante anche lui di rango 2 ma con i due indici controvarianti... e così via...

Questa pagina contiene una piccola libreria basata su un'unica function ossia convertox11(da,ad) dove da è la stringa con l' id della marca da cui viene prelevato il testo da trasformare mentre ad contiene la stringa con l' id della marca in cui va messo il risultato. Il valore di ad può coincidere con quello di da.
In alternativa si può nascondere il contenuto della marca che funge da sorgente indicando il seguente stile di scrittura applicato alla ipotetica marca div con id fonte:
<div id="fonte" style="display:none" >
...qui sta il testo sorgente...
</div>
In questo modo il testo sorgente diventa invisibile ma può essere consultato e/o modificato dinamicamente in caso di necessità.
La libreria è facilmente ampliabile imitando lo stile di quanto è stato già fatto. Basta soltanto conoscere il numero Unicode del simbolo che si desidera rendere usabile ed associarlo a qualche simbolo ASCII come ad esempio le cifre o qualche carattere di punteggiatura.

Come pro memoria riporto qui un elenco dei caratteri speciali che potrebbero venire utili per scrivere formule; a fianco il risultato visibile:

<span title="middot">&#183;</span> ·
<span title="minus">&#8722;</span>
<span title="frac12">&#189;</span> ½
<span title="nabla">&#8711;</span>
<span title="sum">&#8721;</span>
<span title="prod">&#8719;</span>
<span title="radic">&#8730;</span>
<span title="bull">&#8226;</span>
<span title="part">&#8706;</span>
<span title="int">&#8747;</span>
<span title="infin">&#8734;</span>
<span title="asymp">&#8776;</span>
<span title="ne">&#8800;</span>
<span title="equiv">&#8801;</span>
<span title="le">&#8804;</span>
<span title="ge">&#8805;</span>
<span title="un_terzo">&#8531;</span>
<span title="punto_alto">&#729;</span>˙

La libreria Javascript , usabile in un qualsiasi documento HTML col comando:

<script src="http://www.elegio.it/mc2/convenzioni-proformulex11.js.txt" ></script>
sta in convenzioni-proformulex11.js.txt. Per avere un esempio di come usare questa piccolissima libreria vedere il sorgente HTML del file http://www.elegio.it/mc2/convenzioni-proformule-testx10.html .

Un ampliamento recente è il potere usare non una ma addirittura 12 librerie di caratteri esotici ossia non solo quelli greci, utili quando si debbono scrivere formule matematiche, ma altri simboli ( ho impostato la libreria alternativa principale, attivabile con la combinazione di caratteri #$_ in modo che si possano ottenere anche i simboli dei pezzi degli scacchi ).

Per cambiare libreria di caratteri esotici basta scrivere o il carattere #$_ che non viene visualizzato ma attua il cambiamento tra una e l'altra libreria ogni volta che viene usato oppure una cifra scritta con la convenzione dei caratteri greci ossia #0_,#1_, ... #9_. Tutte queste librerie alternative aggiuntive sono inizialmente identiche alla libreria alternativa principale attivata dalla combinazione #$_ ma possono essere configurate in modo analogo a come si può fare con quella principale. La sola differenza consiste nel fatto che la combinazione #$_ serve anche a disattivare le librerie alternative ed a tornare all'uso della libreria base di caratteri esotici.

Esiste infatti ora anche la possibilità di cambiare i caratteri esotici tramite uso di una funzione Javascript. Va chiamata la funzione impostastilex11(vetxset) dove vetxset deve essere un vettore di coppie di dati fatte in questo modo : il numero d'ordine del carattere che si vuole cambiare e la stringa che si vuole far stampare tutte le volte che il carattere esotico viene utilizzato. Se alla funzione impostastilex11(vetxset) si passa, come secondo argomento una cifra tra 0 e nove viene configurata non la libreria alternativa principale ma quella attivabile con le cifre #0_, #1_ ... #9_.

Una applicazione più estesa è il seguente file con alcune formule di calcolo tensoriale: http://www.elegio.it/mc2/formule-varie-tensorialix11.html che include la libreria e http://www.elegio.it/mc2/formule-varie-tensorialix11nolib.html che usa la libreria in rete.

Giampaolo Bottoni
gpbottoni@gmail.com

http://www.alumni.polimi.it/it/Wall
( ing. nucleare 1972 )