SPIP2LaTeX converti le langage de marquage de SPIP en LaTeX. Utilisé avec une installation de LaTeX, il permet de produire des versions PDF des articles d’un site.
Le style par défaut des PDF produits est peu excitant, l’usager final voudra sans aucun doute procéder à une personnalisation.
Configuration du serveur web
Le serveur web doit avoir la commande pdflatex dans son PATH. SPIP doit aussi être capable de charger les URL ?page=latex (voir ci-dessous) depuis localhost. Ceci requiert allow_url_fopen=true dans php.ini et un accès anonyme autorisé depuis 127.0.0.1
URL introduites par le plugin
Version LaTeX d’un article ou d’une rubrique :
http://www.example.net/?page=latex&id_article=4
http://www.example.net/?page=latex&id_rubrique=7
Version PDF d’un article ou d’une rubrique :
http://www.example.net/?page=pdf&id_article=4
http://www.example.net/?page=pdf&id_rubrique=7
On peut aussi ajouter la ligne suivante tout au début du squelette
article.html pour obtenir la version PDF en ajoutant ?formatpdf=1 a
la fin de l’URL d’un article.
[[(#INCLUDE{fond=latex/document.tex,env}|
spip2latex_pdf{[(#ENV**|unserialize)]})](#ENV{formatpdf})]
Modèles introduits par le plugin
Faire un lien vers la version PDF d’un article ou d’une rubrique avec un modèle :
<pdf0|id_article=4>
<pdf0|id_rubrique=7>
On peut aussi faire le lien dans un squelette, avec la balise #MODELE
:
[(#MODELE{pdf}{id_article=#ID_ARTICLE})]
Pour personnaliser l’affichage, il faut appliquer des styles CSS à la classe .spip2latex_pdf
Personnalisation des PDF produits
Le squelette latex.html utilise #INCLURE
sur latex/document.tex.html, qui utilise à son tour #INCLURE
sur les noisettes suivantes :
- latex/preambule.tex.html avant
\begin{document}
- latex/entete.tex.html après
\begin{document}
mais avant le contenu - latex/pied.tex.html après le contenu mais avant
\end{document}
Il faut surcharger ces noisettes pour personnaliser l’affichage des PDF produits. latex/preambule.tex.html est particulièrement intéressant à ce titre, car c’est là que sont définis les styles des éléments traduits depuis SPIP. Voici les commandes et environnements LaTeX candidats à la surcharge :
environnements LaTeX | Usage |
---|---|
spiptolatexthead | Titre de colonne de table |
spiptolatextsummary | Description de table |
spiptolatexexergue | Pour [* Texte mis en evidence *] |
spiptolatexaltexergue | Pour [** Texte mis en evidence (alternatif) *] |
spiptolatexquote | Pour <quote>Citation</quote> |
spiptolatexcadre | Pour <cadre>Texte encadré</cadre> |
spiptolatexpoesie | Pour <poesie>Poésie</poesie> |
spiptolatexcode | Pour <code>Code source</code > |
spiptolatexright | Pour [/ Alignement à droite /] |
spiptolatexcenter | Pour [| Centrage |] |
Langue et jeu de caractère
Les squelettes de base de SPIP2LaTeX tentent de configurer la langue et le jeu de caractère. Seules ont été testées pour l’instant les associations de français et anglais d’une part, et ISO-8859-1 et UTF-8 d’autre part.
Pour ce qui est de la langue, le filtre spip2latex_lang
tente de convertir le code langue ISO de l’article en option de langue pour le paquetage babel. Si une langue ne passe pas, il est toujours possible de surcharger latex/preambule.html, mais il serait encore mieux de modifier le filtre spip2latex_lang
dans le fichier spip2latex.php et de contribuer la modification, pour que les autres en profitent.
Le jeu de caractère de sortie est par défaut ISO-8859-1. Un formulaire CFG permet de configurer globalement un autre jeu de caractère. Il est aussi possible de remplacer dans un squelette le jeu de caractère par défaut, en utilisant la balise #SPIP2LATEX_CHARSET
.
Invoquée avec un argument, elle permet de fixer le jeu de caractère de sortie de SPIP2LaTeX, c’est ce qui est fait dans le squelette latex/document.tex.html, mais on la ré-invoquer dans une noisette si on le souhaite, pour choisir un autre jeu de caractères. Utilisée sans argument, elle renvoie le jeu de caractère courant. Le squelette latex/preambule.html l’utilise sans argument, pour configurer le paquetage inputenc avec le jeu de caractère courant.
Le jeu de caractère de sortie de SPIP2LaTeX n’est pas contraint par le jeu de caractère utilisé par SPIP. Une conversion aura lieu si nécessaire.
Il arrive de temps en temps qu’un caractère un peu exotique empêche LaTeX de compiler le PDF. La balise #SPIP2LATEX_UNICODE_FILTER
permet d’indiquer quels points de code UCS doivent être filtrés. Le formulaire de configuration de SPIP2LaTeX permet d’indiquer sa valeur par défaut.
Un exemple pour éliminer tout ce qui pose problème quand on travaille sur une langue latine :
0x0000-0x001f,0x007f0x009f,!0x000d,!0x000a,0x0126,0x0127,0x0138,0x013f,0x0140,0x0149,0x0166,0x0167,0x017f-0xffff
Production de code LaTeX par les modèles
Lorsqu’un modèle <trucXX>
est rencontré, SPIP2LaTeX utilise modeles/latex_truc.html pour obtenir du code LaTeX. Le plugin fournit des modèles pour <docXX>
et <imgXX>
, qui peuvent être
surchargés en redéfinisant les fichiers modeles/latex_doc.html et modeles/latex_img.html
Vous devez produire des versions LaTeX pour vos modèles personnalisés.
Raffraîchir le cache
Les pages ?page=latex&id_article=xxx ne sont pas cachées. Les squelettes qui les construisent voient en revanche leur forme compilée tomber dans le cache. Il est donc nécessaire de recharger ?page=latex&id_article=xxx&var_mode=recalcul après avoir modifé latex/(preambule|entete|pied).tex.html
Les PDF générés sont cachés jusqu’à ce que l’article ou la rubrique correspondant soit calculé, ce qui se produit normalement après qu’un utilisateur l’ait modifié. Il est aussi possible de purger le cache d’un PDF en ajoutant ?var_mode=calcul à l’URL qui permet de le télécharger.
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |