Ricerca tra la vecchia roba

Script TeX -> png

Posted: Settembre 17th, 2007 | Author: | Filed under: Programmazione, TeX | 6 Comments »

Certe volte mi viene voglia di scrivere qualcosa di fisica su ‘sto cazzo di blog ma ne passa la voglia in quanto il linguaggio adatta, la matematica è difficile da far rendere bene su pagine HTML; esiste MathML ma ancora non ho ben capito se è implementato di default, esiste tth che converte da LaTeX a Html ma a me pare una merda quindi con l’aiuto del sole (e dell’open source/free software/amore) ho riadattato uno script trovato per un plugin su pidgin.

Il plugin in questione si occupa di creare una immagine e di visualizzarla come una emoticon ogni volta che trova qualcosa tra i simboli di $$, proprio come avviene nell’ambiente matematico del TeX; io ho preso questo cazzo di plugin e ne ho asportato le parti non essenziali e ho fatto in modo che funzionasse con il TeX puro. Lo script è questo

#!/bin/bash
#
# script inspired by latex pidgin plugin

TEXFILE=out-tex
echo ‘footline={}’ > /tmp/$TEXFILE.tex

cat /dev/stdin | sed –expression=’s/amp;//g’ |  sed –expression=’s/<br>//g’ >> /tmp/$TEXFILE.tex
echo ‘end’ >> /tmp/$TEXFILE.tex

echo "Converting"
echo "———————————"
echo "$TEXFILE.tex ——> $TEXFILE.dvi"
tex -output-directory=/tmp/ /tmp/$TEXFILE.tex
echo "$TEXFILE.dvi ——> $TEXFILE.ps"
dvips /tmp/$TEXFILE.dvi -o /tmp/$TEXFILE.ps
echo "$TEXFILE.ps  ——> $TEXFILE.png"
convert -density 120×120 -trim /tmp/$TEXFILE.ps /tmp/$TEXFILE.png

# some cleanup
rm /tmp/$TEXFILE.tex /tmp/$TEXFILE.dvi
display /tmp/$TEXFILE.png
rm /tmp/$TEXFILE.png

 Spieghiamo il codice al popolo:

  1. Definisco la variabile TEXFILE che contiene la radice dei nomi da usare per le varie operazioni
  2. Leggo da stdin (cioé da tastiera) filtrando la "e commerciale" e il tag di a capo (questo c’era anche nella versione del plugin e non so perché non lo tolgo) e lo inserisce nel file $TEXFILE.tex
  3. Inserisco la fine del documento del file TeX tramite end (qui non serve il carattere di escaping, cioé il al contrario di footline ma non so perché).
  4. Converto il file da TeX a dvi
  5. Trasformo con convert il file dvi in un png togliendo le parti bianche tramite l’opzione -trim (per quello annulla la footline ;-)).
  6. cancello i file utilizzati come tramite.
  7. visualizzo il risultato.

Salvate il codice in un file 99578-tex2png e dategli i permessi di esecuzione tramite chmod +x ed usatelo in maniera simile a questa

echo "$ alpha+{betaoverpi}$" | ./tex2png.sh 

vi si aprirà una finestra con l’immagine e nel caso salvatela dove volete. Potete anche avviare semplicemente il programma d inserire da stdin la formula/e e poi dare Ctrl-d per indicare la fine dell’input (Ctrl-d è il simbolo per la end of line).

Attenzione che lo script non è minimamente fatto per controllare l’input quindi cisti che la shell interpreta i dollari per indicare il valore di una variabile, perciò lasciate dello spazio fra essi e il contenuto della formula.

Ovviamente miglioramenti sono ben accetti. 


6 Comments on “Script TeX -> png”

  1. 1 Dusty said at 5:27 pm on Settembre 18th, 2007:

    Packz,
    MathMl è supportato nativamente su firefox già dalla versione 1.5… Per explorer esiste un plugin, ma a noi che ci frega? 😀

    Ci sono un po’ di informazioni qui:
    http://www.w3.org/Math/testsuite/

    Mentre qui puoi trovare il torture test, come vedrai i risultati sono notevoli!
    http://www.w3.org/Math/testsuite/testsuite/TortureTests/Complexity/complex1.xml

    Spero di leggere presto un po’ di post legati alla fisica 😉

  2. 2 packz said at 7:27 pm on Settembre 18th, 2007:

    In realtà stavo provando a mettere il DTD del mathml nell’intestazione della pagina ma non ho ben capito se sono io che sono picio o dio che non mi vuole bene (e potrei anche capirlo)… inoltre servirebbe un editor di equazione matematiche per i post…. cmq mi sgamate sempre eh 😉

    P.S: Ma tu sei lo stesso Dusty che posta su luogocomune.net?

  3. 3 Dusty said at 12:38 pm on Settembre 19th, 2007:

    Si, sono io, spero non sia un problema? :-O

    A proposito, ti segnalo questo che magari ti può interessare..

    http://www.luogocomune.net/site/modules/newbb/viewtopic.php?topic_id=3826

  4. 4 packz said at 1:02 pm on Settembre 19th, 2007:

    Nessun problema figurati….

    Più che altro mi chiedo come fanno a sapere che ha perso peso se quello è per definizione il Kg… cercherò risposte nella rete…

  5. 5 Dusty said at 1:29 pm on Settembre 19th, 2007:

    E’ proprio quello che mi chiedevo…

    Forse l’hanno confrontato con gli altri campioni che tengono da altre parti nel mondo?

  6. 6 marco said at 6:34 pm on Settembre 25th, 2007:

    ma non ce ne saranno già tanti di questi script ?

    in ogni caso, è una mancanza di lifetype … wordpress ha il suo plugin latex-png, ma va riadattato, e poi bisogna installare texlive nella macchina di noblogs… quindi boh 🙂