November 23rd, 2009 @ 5:28pm | njames | Categories daily post | No Comments »
Pour rédiger du LaTeX sous GNU/Linux, j'ai longtemps utilisé le plugin TeXlipse pour Eclipse, mais il y a pas mal de bugs dans ce dernier, je suis en train de switcher vers Gedit et son plugin GeditLaTeXPlugin qui est vraiment bien, plus agréable à utiliser, et de plus apporte les fonctionnalités suivantes:
  • un index des chapters / sections / subsections / images / figures même avec des includes !!
  • un index des auteurs dans les fichiers bib.
  • la chaine de compilation est entièrement paramétrable.
  • une visualisation intégrée du pdf.
  • un environnement (minimal) pour les symboles mathématiques.
Cependant, le plugin utilise par défaut rubber pour automatiser la compilation des documents, ce qui m'embête car je n'arrive pas générer des pdf avec index en utilisant rubber (je n'y arrive que en utilisant pdflatex), c'est ainsi que j'utilise ma propre chaine de compilation pour le plugin.

Ma chaîne de compilation Latex avec Gedit:
/usr/bin/pdflatex -interaction=nonstopmode --src-specials "$filename"
/usr/bin/bibtex "$shortname"
/usr/bin/pdflatex -interaction=nonstopmode --src-specials "$filename"
/usr/bin/makeindex "$shortname.nlo" -s nomencl.ist -o "$shortname.nls"
/usr/bin/pdflatex -interaction=nonstopmode --src-specials "$filename"
gnome-open "$shortname.pdf"
Avec l'option must succeeded == true à toutes les commandes sauf pour la commande bibtex (dans le cas où le bibtex est vide et pas de citation dans le fichier tex, voir plus bas dans ce post).
Quelques difficultés avec pdflatex que j'utilise depuis que je suis sous gedit pour écrire mon latex:
  • pour des raisons obscures je n'arrive pas à générer l'index pdf avec autre chose que pdflatex...
  • pdflatex n'aime pas les chemins de fichier contenant des caractères accentués.
  • bibtex retourne une erreur quand le fichier bibtex est vide et aucune citation dans un fichier tex.

UPDATE 2010.01.18:
Le contenu du répertoire du plugin (a coller dans ~/.gnome2/gedit/plugins/GeditLaTeXPlugin): gedit.plugins.GeditLaTeXPlugin.tar.gz.

(nouvelle version 2010.05.25: avec un clean.sh récursif et une option supplémentaire pour ouvrir le PDF, GeditLaTeXPlugin.tar.bz2)

La dernière version en date du plugin LaTeXPlugin-0.2rc3.tar.gz, contient comme les précédentes un gros bug de GUI dans la définition des chaines de compilation: lors de la modification de la chaine de compilation d'un tool (les tools sont les commandes spécifiques de compilation, par exemple LaTeX -> PDF, ou LaTeX -> PS) via les GUI suivantes:

Screenshot

Dans la première fenêtre, celle de gauche, on ne peut modifier effectivement que le premier élément de la liste, dans tous les cas c'est dans le premier élément de la liste que la nouvelle configuration est enregistrée, que l'on ai tenté de modifier le premier tool ou un autre de la liste. Ce qui est plutôt embêtant !
La solution est de modifier à la main le contenu du fichier ~/.gnome2/gedit/plugins/GeditLaTeXPlugin/tools.xml dont le formatage est assez simple.

UPDATE 2010.06.29:
Un style pour GEdit à coller dans ~/.gnome2/gedit/styles qui permet d'avoir un highlight plus visible de la ligne courante: classicWithCurrentLineHighlighted.
October 26th, 2009 @ 4:32pm | njames | Categories Serendipity | 4 Comments »
  • un projet rigolo http://richard.jones.name/google-hacks/google-cartography/google-cartography.html.
  • Apache Pig.
  • il y a depuis le mois de mai une nouvelle version de texlipse, le plugin eclipse pour rédiger du latex, cette version 1.3.0 corrige des bugs notamment celui des captions contenant des citations dans un bloc figure qui étaient considérées dans la version précédente comme des erreurs de syntaxe.
  • calc2latex une macro OpenOffice pour obtenir du code latex à partir d'un sheet calc.
  • Pour faire de l'UML sous Eclipse, il y a l'UML2 Tools, mais c'est très lent (popup bars, animated layout, animated zoom et anti-aliasing sont activés par défaut! c'est déjà moins lent quand tout cet inutile eye-candy est désactivé) et de plus fourmille d'options et spécificités pas forcément UML. Un plugin pour Eclipse qui permet de faire de l'UML 1.4 classique, un peu dans une optique KISS, Keep It Short and Simple, (ce dont sont infiniment éloignés les outils UML que l'on trouve ces derniers temps) est AmaterasUML.
July 7th, 2009 @ 11:22pm | njames | Categories Serendipity | No Comments »
June 25th, 2009 @ 4:54pm | njames | Categories Research | No Comments »
Avec les paquets beamer-3.07.1 et pgf-1.10 dans les dépôts Ubuntu Hardy Heron, il semble qu'il y ait un problème avec pgf car il est impossible de retrouver une image: par exemple pour un \pgfdeclareimage[height=1.cm]{logoMAS}{img/logoMAS.eps}, j'ai:
File "img/logoMAS.eps" not found
Il semble que cela soit dû à la version 1.10 de pgf, trop ancienne et incompatible avec d'autres packages Latex ou Beamer (voir ce billet sur http://texblog.net).
Pour résoudre ce problème le paquet Debian Sid pour pgf-2.0 est installable sur Hardy Heron, mais le mieux est de réinstaller le paquet Beamer (Beamer-3.07.2) de Debian Sid.
September 22nd, 2008 @ 3:27pm | njames | Categories Research | No Comments »
TeXlipse est un plugin Latex pour Eclipse. Parmi les options cachées, du genre de celles que l'on cherche désespérément avant de tomber dessus dans un bout de doc, il y a le line wrapping esc+q, qui ne fonctionne cependant que sur le paragraphe courant. Ainsi il est intéressant d'utiliser le plugin Eclipse Word Wrap.
Notes: Dans la version 1.2.2, l'inclusion de citation dans une caption est considérée comme une erreur dans Eclipse: une icône d'erreur apparaît sur le nom du fichier .tex incriminé et dans l'éditeur. La compilation latex ne retourne aucuns problèmes, et le document est correct, c'est juste pas géré dans TeXlipse.
Un pense-pas-bête sur natbib.
July 30th, 2008 @ 11:49am | njames | Categories DokuWiki | No Comments »
Liste de plugins DokuWiki
  • BibTeX: ce plugin basé sur le plugin BibtexRef de PmWiki et autre plugin bibtex de DokuWiki, permet d'afficher des références bibliographiques et leurs bibtex associés. Ce plugin est très pratique, et le seul que j'ai trouvé pour DokuWiki. Cependant, le plugin a été développé comme un hack, il faut faire quelques modifications du code pour l'utiliser: la racine du wiki est la racine du serveur et il est codé pour être utilisé avec le thème Artic. Il est très facile de changer l'un comme l'autre en regardant un brin le code. Notes: De même les liens hypertextes générés ont des attributs href dont la valeur n'est pas mise entre double quote (ni simple quote). Là encore, en regardant le code de syntax/bibtex.php et syntax/bibcite.php on rajoute facilement les double-quote manquantes. Notes: Une extension possible du code de ce plugin qui serait bien pratique serait de proposer également une insertion de uniquement la référence (genre Faloutsos & al., 2006), avec un tiptext en JavaScript (pour la référence complète) qui s'afficherait sur un event overOn de la souris, et clickable pour afficher le bibtex complet en dur dans la page en cours de lecture.
  • Cloud plugin: apporte une balise spéciale pour afficher un cloud des termes utilisés dans les pages du wiki, voir la démo. On peut spécifier une stopwords liste dans ~dokuwiki/conf/stopwords.txt ou ~dokuwiki/inc/lang/[lang-code]/stopwords.txt. Ce plugin permet aussi de faire des nuages de tag si le plugins Tag est installé.
  • pagemove: permet de renommer et déplacer des pages du wiki.
  • un autre plugin intéressant qui permet de faire des présentations S5 avec DokuWiki.
  • blockquote: pour la gestion des tag HTML blockquote.
  • linebreak: pour prendre en compte les linebreak dans l'affichage des pages.
  • indexmenu: un index du wiki en javascript.
  • baselink: pour faire en sorte que les URL commençant par / soit des URL relatives au DocumentRoot du serveur et non un lien interne au wiki (comportement par défaut).
  • Math2: pour l'inclusion de formules mathématiques dans DokuWiki. Ce plugin fonctionne stand-alone, pas besoin d'installer un renderer comme pour le plugin Math (ce dernier supporte cependant MathML et LaTeX).
  • Latex: se base directement sur une installation Latex (texlive sous Ubuntu), fonctionne bien malgré quelques bugs inexplicables, impossible de rendre ceci par exemple:
    <latex>
    C^{SSD}_{u,v} (d) = \sum_{du=-n}^{du=+n} \sum_{dv=-n}^{dv=+n} ( I_{2} (u_{2} + du , v_{2} + dv) - I_{1} (u_{1} + du , v_{1} + dv ) )</latex>
    Cependant, en découpant l'équation en deux, ça passe:
    <latex>
    C^{SSD}_{u,v} (d) = \sum_{du=-n}^{du=+n} \sum_{dv=-n}^{dv=+n} ( I_{2} (u_{2} + du , v_{2} + dv) - I_{1} (u_{1} + du , v_{1}</latex><latex> + dv ) )</latex>
  • mllist: pour faire des paragraphes multiligne dans un item de list (dans la configuration par défaut de DokuWiki ce n'est pas possible, un item de liste ne peut pas contenir de retour à la ligne).
Pour ajouter des types MIME pour les types de media autorisés dans le gestionnaire de media de DokuWiki
Voir le fichier ~dokuwiki/conf/mime.conf, par défaut:
# You should enable HTML and Text uploads only for restricted Wikis.
# Spammers are known to upload spam pages through unprotected Wikis.
# Note: Enabling HTML opens Cross Site Scripting vulnerabilities
#       through JavaScript. Only enable this with trusted users. You
#       need to disable the iexssprotect option additionally to
#       adding the mime type here
#html    text/html
#htm     text/html
#txt     text/plain
#conf    text/plain
#xml     text/xml
#xsd    text/xsd
Il suffit de décommenter la ligne qui convient. Un problème cependant: bien que le gestionnaire de media accepte ultérieurement les nouveaux types MIME, lors d'un clic sur la ressource, le nom de la ressource est alors: fetch.php. Apparemment, le seul moyen pour contourner cela dans DokuWiki est d'activer le module rewrite d'apache, puis de l'activer dans DokuWiki, i.e. dans le fichier ~dokuwiki/conf/dokuwiki.php:
$conf['userewrite']  = 2;                //this makes nice URLs: 0: off 1: .htaccess 2: internal
Puis ajouter un fichier .htaccess qui va bien dans ~dokuwiki si vous utilisez the mode 1:
RewriteEngine on
RewriteBase /
RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
Pour faire du texte multiligne autour d'une image
il faut mettre l'image en float, par exemple:
{{:screenshot-spectral_sorcery.png?128 |}} Java application. It's a remake of the game of ? ?
L'ajout d'un espace après le nom de l'image et les paramètres de dimension met l'image en float.
"Sorry, username or password was wrong." indiqué dans le html_msgarea() quand pas authentifier (ni tenté de s'authentifier)
un bug report sur splitbrain indique que se sont les lignes:
if(empty($_REQUEST['u']) && empty($_COOKIE[DOKU_COOKIE]) && !empty($_SERVER['PHP_AUTH_USER'])){
$_REQUEST['u'] = $_SERVER['PHP_AUTH_USER'];
$_REQUEST['p'] = $_SERVER['PHP_AUTH_PW'];
}
à commenter dans ~DOKUWIKI/inc/auth.php.
Syndication
Comme j'utilise DokuWiki comme feedback pour mes élèves, il est pratique d'utiliser les flux de syndication du wiki. L'URL du flux http://njames.trevize.net/wiki/feed.php accepte des paramètres en GET u=username et p=password pour une authentification ACL et obtenir ainsi le flux pour toute les pages que l'utilisateur username est en droit de lire.
Taille des icônes juxtaposant les liens
Sur les liens sur un documents PDF, ou PS, dokuwiki juxtapose une icône. Ces images sont dans ~dokuwiki/lib/images/fileicons. Quand on veut redimensionner la hauteur des lignes via CSS dans la page wiki (modifier la propriété dokuwiki), il se trouve que les icônes sont de taille 16x16, donc si on positionne la taille de la font à 12px, l'icône s'affichera mal (il manquera des pixels en bas). L'astuce la plus simple, avoir dans ses sauvegardes une version de dokuwiki avec le répertoire ~dokuwiki/lib/images et deux répertoires fileicons-16x16 et fileicons-12x12. Via un coup d'ImageMagick: for i in *; do convert -resize 12x12 $i $i. Et copier le contenu du répertoire qui convient. C'est une solution à la barbarian mais c'est rapide et ça fonctionne bien.
Customizer les icônes des liens sur fichier (via mime type)
Le code CSS pour les icônes mime des fichiers est situé dans ~dokuwiki/lib/exe/css.php.


 Valid XHTML 1.0 Transitional Valid CSS! WordPress