Listing du fichier formats.php
00001 <?php
00002 error_reporting(E_ALL | E_NOTICE | E_STRICT) ;
00003 include("std7.php") ;
00004 include("pagsd_inc.php") ;
00005 # # (gH) -_- formats.php ; TimeStamp (unix) : 07 Janvier 2019 vers 13:23
00006
00007 #######################################################################################
00008
00009 debutPage("PAGSD : formats","strict","","pagsd.js ../js/raphael.js") ;
00010
00011 debutSection() ;
00012 h1(s_span("P","gbleu")."roduction ".s_span("A","gbleu")."utomatisée de") ;
00013 h1(s_span("G","gbleu")."raphiques, ".s_span("S","gbleu")."tatistiques et ".s_span("D","gbleu")."ocuments") ;
00014 $gh = s_nbsp(20)." gilles.hunault \"at\" univ-angers.fr" ;
00015 h2($gh,"gvert") ;
00016 pvide() ;
00017 h2(" -- prérequis : formats de fichiers et production automatisée de documents");
00018 finSection() ;
00019
00020 ##############################################################################################
00021
00022 debutSection() ;
00023
00024 $tableauDesRubriques = array() ;
00025 $idr = 0 ;
00026 $idr++; $tableauDesRubriques[$idr] = "Fichiers et formats de fichiers" ;
00027 $idr++; $tableauDesRubriques[$idr] = "Documents, tableaux et graphiques" ;
00028 $idr++; $tableauDesRubriques[$idr] = "Documents papier et pages $web" ;
00029 $idr++; $tableauDesRubriques[$idr] = "Outils logiciels pour la production automatisée de documents" ;
00030 $tdmCRLM = new tdm($tableauDesRubriques) ;
00031 $tdmCRLM->titre() ;
00032 $tdmCRLM->menu("oui","oui","nou") ;
00033
00034 pvide() ; $nrub = 0 ;
00035
00036 ## -------------------------------------------------------------------------------------------
00037
00038 $nrub++ ; $tdmCRLM->afficheRubrique("oui") ; # 1. Fichiers et formats de fichiers
00039
00040 ## -------------------------------------------------------------------------------------------
00041
00042 blockquote() ;
00043
00044 p("texte") ;
00045 echo "Sans fichiers, l'informatique n'irait pas bien loin. \n" ;
00046 echo "Un fichier au format binaire brut (".b(em("raw"))." en anglais) est difficilement exploitable. \n" ;
00047 echo "On ne peut ni le lire ni le comprendre facilement. \n" ;
00048 echo "Un fichier au format texte est tout de suite accessible, interrogeable, éditable \n" ;
00049 echo "même s'il comporte plusieurs centaines ou plusieurs milliers de lignes. \n" ;
00050 finp() ;
00051
00052 p("texte") ;
00053 echo "Ainsi, le fichier ".href("listefichiers.sor.txt")." qui comporte 12600 lignes peut être " ;
00054 echo " consulté en ligne de commande avec des commandes comme " ;
00055 echo b("ls").", " ;
00056 echo b("wc").", " ;
00057 echo b("head").", " ;
00058 echo b("tail").", " ;
00059 echo b("grep")."... " ;
00060 finp() ;
00061
00062 # commandes.sh.sor est produit par : commandes commandes.sh "\$gh> " > commandes.sh.sor
00063 # commandes fait référence à ~/Bin/commandes.rex
00064
00065 pre_fichier("commandes.sh.sor","cadrebleu") ;
00066
00067 p("texte") ;
00068 echo "Pour trouver des lignes dans ce fichier, " ;
00069 echo " à défaut de ".b("grep").", il est possible d'éditer le fichier avec un simple éditeur de textes et " ;
00070 echo " d'utiliser le menu ".b("Edition/Rechercher").". " ;
00071 finp() ;
00072
00073 p("texte") ;
00074 echo "Pour disposer de documents structurés, lisibles, mis en page, il faut recourir \n" ;
00075 echo " à ".vert("Microsoft Office")." ou ".vert("Open Office")." avec leurs formats ".bleu("DOC").", ".bleu("XLS")." \n" ;
00076 echo " et plus récemment avec les formats ".bleu("DOCX").", ".bleu("ODT").", ".bleu("XLSX")." et ".bleu("ODS")." (" ;
00077 echo href("../Farcompr/sacor.htm#archives","qui sont des archives contenant des fichiers XML","nou").") \n" ;
00078 echo " \n" ;
00079 echo "mais l'édition au clavier et à la souris se révèle vite fastidieuse pour des \n" ;
00080 echo "documents importants. L'inclusion de fichiers-texte, par exemple issus de programmes informatiques, \n" ;
00081 echo "est un casse-tête avec ces logiciels alors que c'est un jeu d'enfants avec un navigateur \n" ;
00082 echo "ou avec un logiciel comme $latex. \n" ;
00083 finp() ;
00084
00085 p("texte") ;
00086 echo " Imaginez par exemple que vous vouliez mettre dans un document $word le fichier ".href("resultats.txt")." qui " ;
00087 echo " est le résultat de l'exécution du programme ".href("montresource.php?nomfic=calculs.php","calculs.php")." et obtenu " ;
00088 echo " par la commande " ;
00089 finp() ;
00090
00091 pre_fichier("calculs.sor","cadre") ;
00092
00093 p("texte") ;
00094 echo " On peut soit faire un copier/coller du contenu du fichier soit utiliser une technique d'inclusion dans un ";
00095 echo " document-maître. Ce n'est pas difficile. Mais si vous modifiez le programme, il est plus complexe " ;
00096 echo " de mettre à jour le document $word : il faut sélectionner l'ancienne partie de document correspondant, la supprimer " ;
00097 echo " puis insérer le nouveau texte. Sans parler des manipulations s'il faut changer la police de caractères (par exemple " ;
00098 echo " pour utiliser une police non proportionnelle), ajouter la couleur, etc.\n" ;
00099 finp() ;
00100
00101 p("texte") ;
00102 echo "Lorsqu'on utilise $html ou $latex, il n'y a pas lieu de refaire ce genre de manipulation parce que \n" ;
00103 echo " le rendu est assuré à la volée, au moment où on demande la visualisation ($html) ou la composition ($latex) " ;
00104 echo " il s'agit donc d'un ".b("processus dynamique")." de mise en forme et de mise en page " ;
00105 echo " sans interaction clavier ou souris." ;
00106 echo " La généralisation de formats-texte, de vérification et de transformation par programme s'est concrétisée depuis le " ;
00107 echo " début des années 2000 par l'installation progressive de $xml et ses technologies $dtd, $xsd, $xsl." ;
00108 finp() ;
00109
00110 finblockquote() ;
00111
00112 ## -------------------------------------------------------------------------------------------
00113
00114 $nrub++ ; $tdmCRLM->afficheRubrique("oui") ; # 2. Documents, tableaux et graphiques
00115
00116 ## -------------------------------------------------------------------------------------------
00117
00118 blockquote() ;
00119
00120 p("texte") ;
00121 echo "Si la notion de ".s_span("fichier","gvert")." est essentielle en ".s_span("informatique de programmation","gbleuf").", " ;
00122 echo "celle de ".s_span("document","gvert")." est fondamentale en ".s_span("informatique de communication","gbleuf").". \n" ;
00123 echo "Un ".s_span("document orienté communication","grouge")." est un fichier ".b("structuré").", ".b("mis en page").". \n" ;
00124 echo "Il inclut souvent des tableaux, des images, des informations et des commentaires \n" ;
00125 echo "ou des interprétations. \n" ;
00126 echo "Mettre en page un tableau en respectant les normes de l'édition ou de l'imprimerie \n" ;
00127 echo "comme la justification à droite des nombres et la justification à gauche pour les \n" ;
00128 echo "textes (comme dans l'affichage standard sous $excel) n'est pas en soi compliqué : \n" ;
00129 echo "$word sait le faire en automatique et fournit des menus et des icones pour le faire, $html dispose d'attributs comme " ;
00130 echo href("../selfhtml_fr/html/texte/titres.htm#aligner","align") ;
00131 echo " ou \n" ;
00132 echo "de propriétés $css comme " ;
00133 echo href("../selfhtml_fr/css/proprietes/alignement.htm#text_align","text-align") ;
00134 echo ". Encore faut-il appliquer ces mises en forme \n" ;
00135 echo "sur tous les éléments. \n" ;
00136 finp() ;
00137
00138
00139 p("texte") ;
00140 echo "C'est là où la programmation de tels documents prend tout son sens : " ;
00141 echo " il suffit de savoir programmer la lecture d'un fichier-texte qui contient les informations et l'écriture \n" ;
00142 echo " d'un fichier-texte qui ajoute les codes, marqueurs ou balises pour justifier les \n" ;
00143 echo " informations et le tour est joué ! \n" ;
00144 finp() ;
00145
00146 p("texte") ;
00147 echo "Ainsi, le texte original qui suit (fichier ".href("logement.txt").")" ;
00148 finp() ;
00149
00150 pre_fichier("logement.txt","cadre") ;
00151
00152 p("texte") ;
00153 echo "est illisible ou très peu lisible avec un rendu \"brut\" dans un navigateur :" ;
00154 finp() ;
00155
00156 p() ;
00157 echo b("Affichage brut")." :" ;
00158 finp() ;
00159
00160 p("cadre demiLargeur") ;
00161 echo " \n" ;
00162 echo "LIEU MI70 MX70 MI80 MX80 MI82 MX82 MI86 MX86 MI88 MX88 \n" ;
00163 echo "PARI 24.0 41.0 102.0 156 120 200 220 280 230 350 \n" ;
00164 echo "PA07 38.0 61.0 145.0 180 160 300 300 400 380 450 \n" ;
00165 echo "MARS 14.0 22.0 45.0 68 62 100 75 110 70 130 \n" ;
00166 echo "LYON 12.0 20.0 32.0 60 50 110 85 120 60 125 \n" ;
00167 echo "TOLO 12.0 25.0 35.0 62 39 108 65 120 95 125 \n" ;
00168 echo "NICE 20.0 47.0 60.0 140 71 200 75 300 65 300 \n" ;
00169 echo "NANT 9.5 28.0 34.0 70 49 93 65 120 55 120 \n" ;
00170 echo "STRA 12.0 28.0 48.0 72 55 90 55 115 56 130 \n" ;
00171 echo "BORD 15.0 17.0 45.0 70 45 80 60 100 65 140 \n" ;
00172 echo "MNTP 9.5 22.0 50.0 74 60 100 65 100 65 125 \n" ;
00173 echo "AIXP 14.0 17.5 59.0 90 47 114 55 130 55 145 \n" ;
00174 echo "NANC 12.5 19.0 39.0 70 50 95 45 100 60 115 \n" ;
00175 echo "PRPG 9.5 16.0 43.0 68 58 100 70 110 60 110 \n" ;
00176 echo "STLR 14.0 15.0 40.0 56 60 75 80 120 85 135 \n" ;
00177 echo "LROU 13.0 17.0 57.0 71 85 95 75 120 100 135 \n" ;
00178 echo "ANTB 15.0 25.0 50.0 100 82 217 90 300 90 300 \n" ;
00179 echo "CANN 15.0 39.0 75.0 270 130 370 80 500 80 450 \n" ;
00180 echo "STMX 15.0 24.0 60.0 85 90 160 80 170 70 160 \n" ;
00181 echo "AR/M 12.0 18.0 48.0 60 60 100 70 120 70 140 \n" ;
00182 echo "LGrM 12.0 25.0 35.0 90 56 122 75 130 80 140 \n" ;
00183 echo "Arca 18.0 22.0 57.0 107 65 156 90 165 95 165 \n" ;
00184 echo "Roya 15.0 20.0 50.0 90 62 138 90 160 100 150 \n" ;
00185 echo "BAUL 14.0 28.0 70.0 120 70 160 100 250 120 270 \n" ;
00186 echo "DEAU 14.0 20.0 55.0 100 71 120 65 160 70 160 \n" ;
00187 finp() ;
00188
00189 p("texte") ;
00190 echo "Un simple ajouts de marqueurs en $php via les instructions du fichier " ;
00191 echo href("montresource.php?nomfic=logement.php","logement.php")." suivant :" ;
00192 finp() ;
00193
00194 pre_fichier("logement.php","cadrejaune") ;
00195
00196 p("texte") ;
00197 echo "aboutit à un texte XHTML tout-à-fait lisible via son rendu dans un navigateur." ;
00198 finp() ;
00199
00200 p() ;
00201 echo b("Code $xhtml")." produit par la commande ".b("php logement.php > logement.html") ;
00202 echo ", soit le fichier ".href("logement.html")." (extrait) :" ;
00203 finp() ;
00204
00205 pre_fichier("logement.html.txt","cadrejaune") ;
00206
00207 p() ;
00208 echo b("Rendu")." (extrait) :" ;
00209 finp() ;
00210
00211 blockquote() ;
00212 include("logement.php.extrait") ;
00213 finblockquote() ;
00214
00215 p("texte") ;
00216 echo "De plus un document $web est accessible par programme. Ainsi le fichier " ;
00217 echo href("logement2.html")." peut être interrogé et analysé par ce simple script $r :" ;
00218 finp() ;
00219
00220 pre_fichier("logement.r","cadrebleu") ;
00221
00222 p("texte") ;
00223 echo " pour produire les résultats suivants :" ;
00224 finp() ;
00225
00226 pre_fichier("logement.res","cadrejaune") ;
00227
00228 p("texte") ;
00229 echo "Pour les graphiques, si $png ext un bon format binaire d'export, $svg est un format-texte ouvert, programmable, \n" ;
00230 echo " interrogeable, animable via $js notamment. \n" ;
00231 echo " Vous pouvez par exemple cliquer sur le rectangle rouge ou le cercle vert " ;
00232 echo " et le déplacer à l'aide de la souris en tenant le bouton gauche dans le dessin ci-dessous " ;
00233 echo " (adapté de ".href("http://pilat.free.fr/routines/bouger.htm","pilat[...]bouger","gnoir nou").") :" ;
00234 finp() ;
00235
00236 blockquote() ;
00237 p() ;
00238 debutobjet("bouger","bouger.svg","image/svg+xml") ;
00239 finobjet() ;
00240 finp() ;
00241 finblockquote() ;
00242
00243 p() ;
00244 echo s_span(b("Codes-source")." : ","orange_stim") ;
00245 echo href("montresource.php?nomfic=bouger.svg","SVG") ;
00246 echo " ; " ;
00247 echo href("montresource.php?nomfic=bouger.js","Javascript") ;
00248 echo "." ;
00249 finp() ;
00250
00251 p("texte") ;
00252 echo "Disposer des informations en format texte (quitte à ce que ce soit par exportation d'une base de données) \n" ;
00253 echo "laisse la possibilité de les analyser, de les visualiser. \n" ;
00254 echo "Le logiciel $R est sans doute un excellent choix pour passer des données initiales à des \n" ;
00255 echo "statitiques résumés et à des graphiques de visualisation. \n" ;
00256 echo " Et si les données sont au départ au format $xml, il suffit d'utiliser des transformations $xsl \n" ;
00257 echo "pour obtenir un format texte, $xml ou $xhtml. \n" ;
00258 finp() ;
00259
00260 finblockquote() ;
00261
00262
00263 ## -------------------------------------------------------------------------------------------
00264
00265 $nrub++ ; $tdmCRLM->afficheRubrique("oui") ; # 3. Documents papier et pages Web
00266
00267 ## -------------------------------------------------------------------------------------------
00268
00269 blockquote() ;
00270
00271 p("texte") ;
00272 echo "La ".b("diffusion des documents").s_span(" avant les années 2000","grouge")." se faisait presque exclusivement via des " ;
00273 echo " documents papier, que ce soit sous forme de livres ou de photocopies. La révolution du $web a " ;
00274 echo " modifié les modes de diffusion. En particulier les ".s_span("documents $html","gbleuf")." ou ".s_span("\"pages Web\"","gbleuf")." ont inversé le " ;
00275 echo " schéma de distribution : au lieu de diffuser des contenus, on les met à disposition. C'est à " ;
00276 echo " l'utilisateur de venir les chercher. " ;
00277 finp() ;
00278
00279 p("texte") ;
00280 echo "La volonté de partager des documents modifiables entre collaborateurs avec des ordinateurs différents " ;
00281 echo " a débouché sur les ".b("formats portables")." RTF pour les documents Word " ;
00282 echo " et CSV pour les tableaux de données des feuilles Excel, sur la généralisation de HTML comme " ;
00283 echo " langage de traitement de textes et de mise en forme pour le $web, sur l'installation massive de systèmes " ;
00284 echo " AMP (Apache, Mysql Php) et de façon moins immédiate pour le grand public, de XML comme métalangage de formats " ;
00285 echo " ouverts pour tous les documents structurés. " ;
00286 finp() ;
00287
00288 p("texte") ;
00289 echo "Avec tous ces formats-textes, il est possible d'écire des documents en utilisant n'importe quel langage de programmation " ;
00290 echo " car il suffit d'écrire de codes, des marqueurs, des balises, voire juste des points-virgules pour fournir un fichier " ;
00291 echo " importable et convertible. MySQL lui-même sait exporter dans les formats HTML et XML comme on peut le voir " ;
00292 echo " sur cet extrait de sortie de l'".href("aide_mysql.txt","aide de MySQL")." :" ;
00293 finp() ;
00294
00295 pre_fichier("aide_mysql_courte.txt","cadre") ;
00296
00297
00298 p("texte") ;
00299 echo "Produire des documents \"informationnels\" à l'aide de programmes informatiques est donc une activité assez simple" ;
00300 echo " qui demande seulement de savoir quels marqueurs programmer et où les insérer dans les fichiers-texte pour " ;
00301 echo " obtenir le rendu souhaité. Toutefois, les mettre à disposition sur le $web dans un format autre que PDF ou non " ;
00302 echo " imprimable directement mène à des changements notables dans les documents. " ;
00303 finp() ;
00304
00305 p("texte") ;
00306 echo "La première plus grande différence entre un document papier et un document $web est la notion de "."page".". " ;
00307 echo " Une page physique, que ce soit au format ".b("letter US")." ou ".b("A4")." impose des contraintes précises de mise en page alors " ;
00308 echo " qu'un document $web peut se contenter d'afficher en continu, sans limite de taille horizontale ou verticale. Les navigateurs $web " ;
00309 echo " sont devenus en quelque sorte des visualiseurs universels, capables d'afficher des fichiers-textes très longs comme " ;
00310 echo href("../wstat/Eda/edaData/polio.dar","ce fichier")." de 401 975 lignes. " ;
00311 echo " Ou encore cet ".href("../Idas/Ccd/leadb_710_fasta_aaa.dac.txt","autre fichier")." de 8002 colonnes." ;
00312 echo " Bien configurés, les navigateurs affichent des textes, des images, des animations et viennent déléguer aux logiciels installés " ;
00313 echo " les fichiers plus techniques comme des documents Word ou des documents Excel." ;
00314 finp() ;
00315
00316 p("texte") ;
00317 echo "La deuxième plus grande différence entre un document papier et un document $web est la notion d' "."interactivité".". " ;
00318 echo " Ainsi, la programmation des pages $web permet de mettre en ligne des contenus issus de bases de données ou de programmes complexes " ;
00319 echo " dont les entrées sont lues dans des formulaires." ;
00320 finp() ;
00321
00322 finblockquote() ;
00323
00324
00325 ## -------------------------------------------------------------------------------------------
00326
00327 $nrub++ ; $tdmCRLM->afficheRubrique("oui") ; # 4. Outils logiciels pour la production automatisée de documents
00328
00329 ## -------------------------------------------------------------------------------------------
00330
00331 $sousrub = 0 ;
00332 blockquote() ;
00333
00334 $sousrub++ ; h3($nrub.".".$sousrub." Graphviz et dot") ;
00335
00336 p("texte") ;
00337 echo "Pour produire des graphiques complexes mais structurés comme des " ;
00338 echo href("http://fr.wikipedia.org/wiki/Th%C3%A9orie_des_graphes","graphes","gbleuf nou") ;
00339 echo " (au sens informatique du terme) " ;
00340 echo " dont des " ;
00341 echo href("http://fr.wikipedia.org/wiki/Arbre_%28graphe%29","arbres informatiques","gbleuf nou") ;
00342 echo ", une suite logicielle comme " ;
00343 echo href("http://en.wikipedia.org/wiki/Graphviz","Graphviz","gvert nou")." et en particulier son " ;
00344 echo href("http://en.wikipedia.org/wiki/DOT_%28graph_description_language%29","programme et langage dot","grouge nou") ;
00345 echo " suffit. L'écriture des fichiers associés, de type ".b(".dot")." ou, mieux, pour éviter un conflit " ;
00346 echo " avec les fichiers de modèles de ".b("Microsoft Word").", de type ".b(".gv")." ou ".b(".gv.txt") ;
00347 echo " se fait soit avec un simple éditeur de textes soit en programmant les instructions de ".b("dot")."..." ;
00348 echo " N'importe quel " ;
00349 echo href("../tuteurs/tutliste.htm","langage de programmation","gbleuf nou")." convient pour cela, mais un " ;
00350 echo href("http://fr.wikipedia.org/wiki/Langage_de_script","langage de script","gvert nou") ;
00351 echo " est sans doute plus adapté qu'un langage compilé traditionnel." ;
00352 finp() ;
00353
00354 p("texte") ;
00355 echo "Voici par exemple le texte d'un fichier ".b("DOT")." qui correspond à un graphe complet pour 3 sommets " ;
00356 echo " nommés ".b("A").", ".b("B")." et ".b("C")." :" ;
00357 finp() ;
00358
00359 pre_fichier("un.dot","cadrebleu") ;
00360
00361 p("texte") ;
00362 echo "Et son rendu en ".b("PNG").", sachant que c'est le logiciel ".b("DOT")." qui choisit les coordonnées de tracé :" ;
00363 # tracé produit par : dot -T png un.dot -o un.png
00364 finp() ;
00365
00366 pre("cadre") ;
00367 nbsp(15) ;
00368 $img = "un.png" ;
00369 echo href($img,img($img)) ;
00370 finpre() ;
00371
00372 p("texte") ;
00373 echo "Les options de $dot permettent une gestion fine du placement des noeuds :" ;
00374 finp() ;
00375
00376 pre_fichier("triangle3.dot","cadrebleu") ;
00377
00378 pre("cadre") ;
00379 nbsp(15) ;
00380 $img = "triangle3.png" ;
00381 echo href($img,img($img)) ;
00382 finpre() ;
00383
00384 $sousrub++ ; h3($nrub.".".$sousrub." SVG") ;
00385
00386 p("texte") ;
00387 echo "Pour des graphiques plus généraux, un langage de description vectoriel 2D " ;
00388 echo " comme ".href("http://fr.wikipedia.org/wiki/Scalable_Vector_Graphics","SVG") ;
00389 echo " est un bon choix. Technique mais simple " ;
00390 echo " car " ;
00391 echo href("http://en.wikipedia.org/wiki/Scalable_Vector_Graphics","SVG","gbleuf nou") ;
00392 echo " est un format " ;
00393 echo href("http://fr.wikipedia.org/wiki/Extensible_Markup_Language","XML","gbleuf nou") ;
00394 echo ", on peut écrire du ".b("SVG")." avec un éditeur de textes, avec le logiciel " ;
00395 echo href("http://fr.wikipedia.org/wiki/Inkscape","Inkscape","gbleuf nou") ;
00396 echo " ou par programme. On peut animer du ".b("SVG")." avec ".href("http://fr.wikipedia.org/wiki/Javascript","Javascript","gbleuf nou") ;
00397 echo " comme on peut le voir ".href("http://www.draw4free.com/tutorial/chess/ChessNotationPlayer.html","ici")."." ;
00398 finp() ;
00399
00400 p("texte") ;
00401 echo "Voici par exemple le texte d'un fichier SVG qui correspond à un mini-échiquier de 3x3 :" ;
00402 finp() ;
00403
00404 pre_fichier("chess3-3.svg","cadrebleu") ;
00405
00406 p("texte") ;
00407 echo "Et voici son rendu une fois exporté en ".b("PNG") ;
00408 echo " (le \"vrai\" ".b("SVG")." est ".href("chess3-3.svg","ici").") :" ;
00409 finp() ;
00410
00411 pre("cadre") ;
00412 nbsp(15) ;
00413 $img = "chess3-3.png" ;
00414 echo href($img,img($img,"",150)) ;
00415 finpre() ;
00416
00417 $sousrub++ ; h3($nrub.".".$sousrub." Le logiciel R") ;
00418
00419 p("texte") ;
00420 echo "Pour réaliser des calculs statistiques et des graphiques statistiques, le " ;
00421 echo href("http://cran.r-project.org/","logiciel R","gbleuf nou")." ou ".b('"CRAN software"') ;
00422 echo " et son langage de programmation " ;
00423 echo " est certainement l'outil le plus adapté. " ;
00424 finp() ;
00425
00426 p("texte") ;
00427 echo "Voici par exemple le texte d'un script ".b("R")." qui " ;
00428 echo " affiche l'histogramme des fréquences de codes-sexe :" ;
00429 finp() ;
00430
00431 pre_fichier("unr.r","cadrebleu") ;
00432
00433 p("texte") ;
00434 echo "Et l'image produite :" ; # via unr2.r
00435 finp() ;
00436
00437 p() ;
00438 nbsp(15) ;
00439 $img = "unr.png" ;
00440 echo href($img,img($img,"",600)) ;
00441 finp() ;
00442
00443 p("texte") ;
00444 echo "Bien sûr rien n'empêche de produire un script ".b("R")." à la volée, par exemple via " ;
00445 echo " un script ".b("PHP")." comme dans la page " ;
00446 echo href("../Leadb/index.php?action=12&mode=2&idp=1&ndp=Length&ndpl=Number+of+amino+acids","LEADB")."." ;
00447 finp() ;
00448
00449 p("texte") ;
00450 echo "Avec ses " ;
00451 echo href("http://cran.r-project.org/web/packages/","milliers de packages") ;
00452 echo " (plus de 5800 en juillet 2014), $R permet aussi de traiter de nombreux calculs autant informatiques " ;
00453 echo " que statistiques. Voici en quatre instructions comment tracer le graphe complet précédent :" ;
00454 finp() ;
00455
00456 pre_fichier("triangle.r","cadrebleu") ;
00457
00458 p("texte") ;
00459 echo "Et l'image produite :" ; # via triangle2.r
00460 finp() ;
00461
00462 p() ;
00463 nbsp(15) ;
00464 $img = "rtriangle.png" ;
00465 echo href($img,img($img,"",300)) ;
00466 finp() ;
00467
00468 $sousrub++ ; h3($nrub.".".$sousrub." LATEX") ;
00469
00470 p("texte") ;
00471 echo "Pour des documents à imprimer ou à rendre sous un format PDF, le logiciel " ;
00472 echo href("http://fr.wikipedia.org/wiki/LaTeX","$LATEX")." est le meilleur outil. Utilisé au niveau professionnel dans l'imprimerie, " ;
00473 echo " il est assez technique à maitriser mais tellement ".b("complet")." qu'on ne peut pas lui en vouloir." ;
00474 echo " Historiquement prévu pour écrire des documents mathématiques, on s'en sert aujourd'hui pour produire des documents de qualité." ;
00475 finp() ;
00476
00477 p("texte") ;
00478 echo "Le code $LATEX suivant montre la formule de la ".b("correction relativiste").". " ;
00479 echo " Le fichier PDF résultat est ".href("unt.pdf","ici").". " ;
00480 finp() ;
00481
00482 pre_fichier("unt.tex","cadrebleu") ;
00483
00484 p("texte") ;
00485 echo "Voici une copie-écran du rendu :" ;
00486 finp() ;
00487
00488 pre("cadre") ;
00489 nbsp(15) ;
00490 $img = "unt.png" ;
00491 echo href($img,img($img)) ;
00492 finpre() ;
00493
00494 p("texte") ;
00495 echo "Le système de base de $LATEX est complété par de nombreux packages dont l'un des plus connus est " ;
00496 echo href("http://tug.org/PSTricks/main.cgi?file=Examples/Gallery/Gallery","PSTricks").". " ;
00497 echo " Revoici le graphe complet sur les trois sommets A, B et C avec ce package :" ;
00498 finp() ;
00499
00500 pre_fichier("triangle.tex","cadrebleu") ;
00501
00502 p("texte") ;
00503 echo "Et son rendu :" ;
00504 finp() ;
00505
00506 pre("cadre") ;
00507 nbsp(15) ;
00508 $img = "triangle.png" ;
00509 echo href($img,img($img)) ;
00510 finpre() ;
00511
00512 $sousrub++ ; h3($nrub.".".$sousrub." Sweave") ;
00513
00514 p("texte") ;
00515 echo "Comme $LATEX dispose de commandes de programmation rudimentaires, le couplage de $LATEX et d'un langage de scripts se révèle " ;
00516 echo " en général très efficace. En particulier le couple $LATEX+$R est un bon compromis pour pallier à la faiblesse des affichages de R. " ;
00517 echo " Ce couplage est notamment intégré dans " ;
00518 echo href("http://en.wikipedia.org/wiki/Sweave","$Sweave").". On trouve un exemple de \"gros\" manuel produit par $Sweave " ;
00519 echo " à l'adresse ".href("../Leadb/leaman/LEADBpart2.pdf","leadb stats part 2","gbleuf nou").". " ;
00520 echo " Voici un extrait du code correspondant qui montre bien le mélange $LATEX et $R :" ;
00521 finp() ;
00522
00523 pre_fichier("uns.rnw","cadrebleu") ;
00524
00525 $sousrub++ ; h3($nrub.".".$sousrub." PHP, Javascript et leurs bibliothèques de fonctions") ;
00526
00527 p("texte") ;
00528 echo " Pour le $web, des outils de tracé à la volée sont disponibles, notamment via Javascript et PHP." ;
00529 echo " Outre les bibliothèques généralistes comme ".href("http://jpgraph.net/","jpgraph")." et " ;
00530 echo href("http://dmitrybaranovskiy.github.io/raphael/","raphael").", " ;
00531 echo " deux bibliothèques basées sur le même concept de " ;
00532 echo b(" data driven documents")." sont, selon nous, à connaitre absolument : " ;
00533 echo href("http://mbostock.github.io/protovis/","protovis")." et " ;
00534 echo href("http://d3js.org/","d3js").". " ;
00535 finp() ;
00536
00537 # ajouter des images, une démo ?
00538
00539
00540 p("texte") ;
00541 echo "Voici un exemple de tracé avec ".href("http://raphaeljs.com/","raphael")." (voir ".href("raphael.php")." pour les codes-source) :" ;
00542 finp() ;
00543
00544 div("","page") ;
00545 jsf("raphaeldemo.js") ;
00546 findiv() ;
00547
00548
00549 finblockquote() ;
00550
00551
00552 ## -------------------------------------------------------------------------------------------
00553
00554 pvide() ;
00555
00556 p() ;
00557 echo href("montresource.php?nomfic=formats.php","Code-source de cette page","orange_stim nou")."." ;
00558 finp() ;
00559
00560
00561 finSection() ;
00562 finPage() ;
00563 ?>
Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.
Retour à la page principale de (gH)