Abilitare Tex su Mediawiki (Slackware)

12 aprile 2012 by Roberto Puzzanghera 0 commenti

Mediawiki offre la possibilità di inserire formule Tex nelle nostre pagine creando dinamicamente immagini PNG per noi..

Questa pagina vuole richiamare i pacchetti e i principali passi da seguire per far funzionare Tex con MediaWiki in una macchina Slackware. Alla fine presenterò alcune problematiche nell'installzione.

Ghostscript

Ghostscript è già incluso in Slackware (ap/ghostscript e ap/ghostscript-fonts-std)  ma se siamo in un server minimale potresti avere bisogno di installarlo.

libfontconfig

Questa libreria la troviamo all'interno del pacchetto x/fontconfig. E' richesta da ImageMagick.

ImageMagick

wget http://www.imagemagick.org/download/ImageMagick-6.7.6-5.tar.bz2
tar xvfj ImageMagick-6.7.6-5.tar.bz2
cd ImageMagick-6.7.6-5
chown -R root.root . ./configure \ --without-x \ --with-png \ --with-freetype \ --with-dps \ --with-gslib make make install
ldconfig

Test

Provare a digitare, dalla linea di comando

/usr/local/bin/convert logo: logo.gif

Se viene generato il file PNG tutto funziona come si deve.

Ocaml

wget http://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12.0.tar.bz2
tar xjf ocaml-3.12.0.tar.bz2
cd ocaml-3.12.0
chown -R root.root .
./configure
make
make install

dvipng

Download: http://sourceforge.net/projects/dvipng/

Prerequisiti:

  • libgd (l/gd pkg)
  • libXpm (x/libXpm pkg), libxcb (x/libxcb), libXau (x/libXau) and  libXdmcp (x/libXdmcp) che sono prerequisiti di libgd.
  • Kpathsea (incluso nel pacchetto Tex, installare tutto ciò che vi è nel gruppo t/)
  • FreeType (pkg in l/freetype)
  • T1lib (l/t1lib)
  • libpng (l/libpng) and libz (l/zlib)
  • texinfo (ap/tekinfo)
PATH=$PATH:/usr/share/texmf/bin/
export PATH

Ricordare di salvare ciò anche nel profile.

Per evitare problemi nel link di kpathsea configurare come segue

./configure LDFLAGS='-L/usr/share/texmf/lib/' CPPFLAGS='-I/usr/share/texmf/include/'
make
make install

AMS-LaTeX

Senza AMS* alcune formule saranno rese correttamente mentre altre no. Il pacchetto tetex di Slackware contiene già AMS, comunque, nel caso non ce l'avessi:

cd /usr/share/texmf
wget ftp://ftp.ams.org/pub/tex/amslatex.zip
wget ftp://ftp.ams.org/pub/tex/amsrefs/amsrefs.zip
unzip amslatex.zip
unzip amsrefs.zip

dovresti trovarlo in /usr/share/texmf/tex/latex/amsmath/amsmath.sty

Abilitare Tex in Mediawiki

Cambiare directory dove è installato mediawiki, editare LocalSettings.php e decommentare questo:

$wgUseTeX = true;

Compilazione di texvc

cd /path/to/htdocs/mediawiki/math

Prima di compilare, per evitare un parse error, usare il PATH assoluto ovunque all'interno di math/render.ml in questo modo:

let cmd_dvips tmpprefix = "/usr/share/texmf/bin/dvips -q -R -E " ^ tmpprefix ^ ".dvi -f >" ^ tmpprefix ^ ".ps"
let cmd_latex tmpprefix = "/usr/share/texmf/bin/latex " ^ tmpprefix ^ ".tex >/dev/null"
(* Putting -transparent white in converts arguments will sort-of give you transperancy *)
let cmd_convert tmpprefix finalpath = "/usr/local/bin/convert -quality 100 -density 120 " ^ tmpprefix ^ ".ps " ^ finalpath ^ " >/dev/null 2>/tmp/wiki_convert_error"
(* Putting -bg Transparent in dvipng's arguments will give full-alpha transparency *)
(* Note that IE have problems with such PNGs and need an additional javascript snippet *)
(* Putting -bg transparent in dvipng's arguments will give binary transparency *)
let cmd_dvipng tmpprefix finalpath backcolor = "/usr/local/bin/dvipng -bg \'" ^ backcolor ^ "\' -gamma 1.5 -D 120 -T tight --strict " ^ tmpprefix ^ ".dvi -o " ^ finalpath ^ " >/dev/null 2>/tmp/wiki_dvipng_error"

Ora compiliamo

make

Problematiche

Provare a mettere dentro una pagina wiki qualcosa come

0

e cerchiamo di vedere cosa succede. Questo è il messaggio di errore più frequente:

Failed to parse (PNG conversion failed; check for correct installation of latex, dvips, gs, and convert)

Controlliamo se gli eseguibili sono nel path:

# ls -lH `which gs` `which latex` `which dvips` `which convert`
-rwxr-xr-x 1 root root 5977916 2008-12-05 23:36 /usr/bin/gs*
-rwxr-xr-x 1 root root   23410 2010-11-21 15:22 /usr/local/bin/convert*
-rwxr-xr-x 1 root root  209308 2007-06-28 04:51 /usr/share/texmf/bin/dvips*
-rwxr-xr-x 1 root root 1010984 2007-06-28 04:51 /usr/share/texmf/bin/latex*

Abilitiamo il log degli errori. Inserire una linea come questa in LocalSettings.php

$wgDebugLogFile = "/tmp/wiki.log";

Apriamo questo file e cerchiamo una riga come questa ;

TeX: ./math/texvc '/path/to/htdocs/mediawiki/images/tmp' '/path/to/htdocs/mediawiki/images/tmp' '0' 'UTF-8' 'transparent'
TeX output:
 Ccfcd208495d565ef66e7dff9f98764da0 0
---

Cerchiamo ora di eseguire il comando texvc dalla linea di comando come utente apache:

cd math
sudo -u apache ./texvc '../images/tmp' '../images/tmp' '0' 'UTF-8' 'transparent'

a controlliamo il PNG nella cartella images/tmp. Se si ottiene ancora un parse error, si ricontrolli il path assoluto in math/render.ml, e si ricompili. E si rileggano le referenze indicate.

Aggiungi un commento