Visualiser les détails du résultat
| Identifiant | Projet | Catégorie | Visibilité | Date de soumission | Dernière mise à jour |
|---|---|---|---|---|---|
| 0001163 | Documentations SIC | Gestion de la documentation sous SPIP | public | 2015-06-03 09:37 | 2015-06-03 14:11 |
| Rapporteur | dorch | Assigné à | utilisateur16 | ||
| Priorité | normale | Impact | critique | Reproductibilité | toujours |
| Statut | fermé | Résolution | corrigé | ||
| Version du produit | |||||
| Version ciblée | Résolu dans la version | ||||
| Résumé | 0001163: Latex : Traitement des listes à puces et numérotées | ||||
| Description | Dans SPIP les listes sont représentées par un trait d'union et une astérisque ou le trait d'union et le symbole dièse pour respectivement les listes à puces et les listes numérotées. (cf. http://contrib.spip.net/Les-raccourcis-typographiques-en-standard-avec-SPIP) Dans les articles, les listes à puces sont souvent écrites, à tort, avec uniquement un trait d'union. Le plugin "Belles Puces" effectue donc automatiquement la conversion vers le format officiel pour que ces listes soient traitées correctement. En LaTeX, l'équivalent correspond aux environnements itemize et enumerate encadrés par des begin/end et où chaque ligne commence par l'instruction \item. Voici ci-joint le script de conversion LaTeX avec un script reprenant l’instruction de Belles Puces et effectuant la conversion. | ||||
| Informations complémentaires | Instructions à ajouter dans propre_export_doc_latex :
// On traite les listes à puce et numérotées
$t = preg_replace('/^-\s+/m','-* ',$t);
$t = latex_liste($t,array('-*','itemize'));
$t = latex_liste($t,array('-#','enumerate'));
Et la fonction qui va bien :
/**
* Conversion des listes SPIP en listes latex avec l'environnement itemize
* @param $t le texte à traiter
* @param $type caractère de définition du type de liste et environnement latex correspondant
* @return le texte traité
* @author David Dorchies
* @date 02/06/2015
*/
function latex_liste($t,$type=array('-*','itemize')){
// On découpe le texte en lignes
$lignes = explode("\n",$t);
$bDansListe = false;
$patsize = strlen($type[0]);
$ret = array();
foreach($lignes as $ligne) {
if(substr($ligne,0,$patsize)==$type[0]) {
// On est sur un item de liste !
if(!$bDansListe) {
// C'est un début de liste
$ret[]='\begin{'.$type[1].'}';
$bDansListe = true;
}
$ret[] = '\item '.substr($ligne,$patsize);
}
else {
if ($bDansListe && trim($ligne)!='') {
// On est sorti de la liste
if(trim(end($ret))=='') {array_pop($ret);}
$ret[] = '\end{'.$type[1].'}';
$ret[] = '';
$bDansListe = false;
}
$ret[] = $ligne;
}
}
if($bDansListe) {
// Il faut fermer la liste
$ret[] = '\end{'.$type[1].'}';
}
return implode("\n",$ret);
}
| ||||
| Balises | Aucune balise n'est associée. | ||||
| Date de modification | Nom d’utilisateur | Champ | Changement |
|---|---|---|---|
| 2015-06-03 09:37 | dorch | Nouveau bogue | |
| 2015-06-03 09:37 | dorch | Statut | nouveau => affecté |
| 2015-06-03 09:37 | dorch | Assigné à | => utilisateur16 |
| 2015-06-03 14:11 |
|
Note ajoutée: 0001200 | |
| 2015-06-03 14:11 |
|
Statut | affecté => fermé |
| 2015-06-03 14:11 |
|
Résolution | ouvert => corrigé |