<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>Club LinuX Nord-Pas de Calais</title>
	<link>https://clx.asso.fr/spip/</link>
	<description>Association loi 1901 de promotion des logiciels libres en r&#233;gion Nord-Pas de Calais depuis 1999.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net (Sarka-SPIP)</generator>

	<image>
		<title>Club LinuX Nord-Pas de Calais</title>
		<url>https://clx.asso.fr/spip/local/cache-vignettes/L144xH21/siteon0-86bed.png?1759523095</url>
		<link>https://clx.asso.fr/spip/</link>
		<height>21</height>
		<width>144</width>
	</image>



 
	<item xml:lang="fr">
		<title>Pourquoi les &#233;coles doivent utiliser exclusivement du logiciel libre</title>
		<link>https://clx.asso.fr/spip/?Pourquoi-les-ecoles-doivent-utiliser-exclusivement-du-logiciel-libre</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?Pourquoi-les-ecoles-doivent-utiliser-exclusivement-du-logiciel-libre</guid>
		<dc:date>2015-08-29T23:29:34Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>tems</dc:creator>


		<dc:subject>Citoyennet&#233;</dc:subject>
		<dc:subject>Philosophie</dc:subject>
		<dc:subject>D&#233;ploiement</dc:subject>
		<dc:subject>Libert&#233; d'expression</dc:subject>
		<dc:subject>Education informatique</dc:subject>

		<description>
&lt;p&gt;par Richard Stallman &lt;br class='autobr' /&gt;
Les activit&#233;s li&#233;es &#224; l'&#233;ducation, y compris les &#233;coles depuis le jardin d'enfants jusqu'&#224; l'universit&#233;, ont pour devoir moral de n'enseigner que le logiciel libre. &lt;br class='autobr' /&gt;
Tout utilisateur d'informatique devrait exiger des logiciels libres car ils lui donnent la possibilit&#233; de contr&#244;ler son propre ordinateur &#8211; avec les logiciels privateurs en effet,a le programme fait ce que son propri&#233;taire ou son d&#233;veloppeur veut qu'il fasse, pas ce que l'utilisateur veut qu'il fasse. Le (&#8230;)&lt;/p&gt;


-
&lt;a href="https://clx.asso.fr/spip/?-Transition-vers-le-Libre-" rel="directory"&gt;Transition vers le Libre...&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-Citoyennete-+" rel="tag"&gt;Citoyennet&#233;&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Philosophie-+" rel="tag"&gt;Philosophie&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Deploiement-+" rel="tag"&gt;D&#233;ploiement&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Liberte-d-expression-+" rel="tag"&gt;Libert&#233; d'expression&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Education-informatique-+" rel="tag"&gt;Education informatique&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L150xH76/arton2870-46f38.png?1759523722' alt='' class='spip_logo spip_logo_right' width='150' height='76' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;div class=&#034;field field-name-body field-type-text-with-summary field-label-hidden&#034;&gt;&lt;div class=&#034;field-items&#034;&gt;&lt;div class=&#034;field-item even&#034; property=&#034;content:encoded&#034;&gt;
&lt;p&gt;&lt;a href=&#034;http://www.gnu.org/&#034; target=&#034;_blank&#034;&gt;&lt;img alt=&#034;&#034; src='https://clx.asso.fr/spip/local/cache-vignettes/L145xH140/heckert_gnusmall-176c08f7-52f9a.png?1759565226' width='145' height='140' /&gt;&lt;/a&gt;par &lt;a href=&#034;http://www.stallman.org/&#034;&gt;Richard Stallman&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Les activit&#233;s li&#233;es &#224; l'&#233;ducation, y compris les &#233;coles depuis le jardin d'enfants jusqu'&#224; l'universit&#233;, ont pour &lt;a href=&#034;http://www.gnu.org/education/education.html&#034;&gt;devoir moral de n'enseigner que le logiciel libre&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Tout utilisateur d'informatique devrait &lt;a href=&#034;http://www.gnu.org/philosophy/free-software-even-more-important.html&#034;&gt;exiger des logiciels libres&lt;/a&gt; car ils lui donnent la possibilit&#233; de contr&#244;ler son propre ordinateur &#8211; avec les logiciels privateurs en effet,&lt;a href=&#034;http://www.gnu.org/education/edu-schools.fr.html#TransNote1&#034; id=&#034;TransNote1-rev&#034;&gt;&lt;sup&gt;a&lt;/sup&gt;&lt;/a&gt; le programme fait ce que son propri&#233;taire ou son d&#233;veloppeur veut qu'il fasse, pas ce que l'utilisateur veut qu'il fasse. Le logiciel libre donne &#233;galement aux utilisateurs la libert&#233; de coop&#233;rer, de vivre dans la droiture morale. Ces raisons s'appliquent aux &#233;coles comme &#224; tout le monde. Toutefois, le but de cet article est de pr&#233;senter les arguments suppl&#233;mentaires qui s'appliquent sp&#233;cifiquement &#224; l'&#233;ducation.&lt;/p&gt;
&lt;p&gt;Le logiciel libre fait &#233;conomiser de l'argent aux &#233;coles, mais c'est un avantage secondaire. Il permet des &#233;conomies car il donne aux &#233;coles, comme aux autres utilisateurs, la libert&#233; de copier et redistribuer les logiciels ; l'&#201;ducation nationale (ou tout syst&#232;me &#233;ducatif) peut en donner des copies &#224; toutes les &#233;coles, et chacune peut installer les programmes sur tous ses ordinateurs, sans avoir besoin de payer pour le faire.&lt;/p&gt;
&lt;p&gt;Cet avantage est utile, mais nos refusons cat&#233;goriquement de lui donner la premi&#232;re place, parce qu'il est superficiel compar&#233; aux questions &#233;thiques importantes qui sont en jeu. Faire migrer les &#233;coles vers le logiciel libre repr&#233;sente bien plus qu'un moyen de rendre l'&#233;ducation un peu &#171; meilleure &#187; : il s'agit ici de faire de la bonne &#233;ducation plut&#244;t que de la mauvaise &#233;ducation. Approfondissons donc la question.&lt;/p&gt;
&lt;p&gt;L'&#233;cole a une mission sociale, celle de former les &#233;l&#232;ves &#224; &#234;tre citoyens d'une soci&#233;t&#233; forte, capable, ind&#233;pendante, solidaire et libre. Elle doit promouvoir l'utilisation de logiciel libre tout comme elle promeut la conservation des ressources naturelles et le vote. En formant les &#233;l&#232;ves et &#233;tudiants au logiciel libre, elle donnera leur dipl&#244;me &#224; des citoyens pr&#234;ts &#224; &#233;voluer dans une soci&#233;t&#233; num&#233;rique libre. Cela aidera la soci&#233;t&#233; toute enti&#232;re &#224; &#233;chapper &#224; la domination des multinationales.&lt;/p&gt;
&lt;p&gt;En revanche, enseigner un programme non libre revient &#224; implanter la d&#233;pendance, ce qui va &#224; l'encontre de la mission sociale de l'&#233;cole. Les &#233;coles ne doivent jamais le faire.&lt;/p&gt;
&lt;p&gt;Pourquoi, apr&#232;s tout, certains d&#233;veloppeurs de logiciels privateurs offrent-ils des exemplaires gratuits &lt;a href=&#034;http://www.gnu.org/education/edu-schools.fr.html#note1&#034;&gt;(1)&lt;/a&gt; de leurs programmes non libres aux &#233;coles ? Parce qu'ils veulent &lt;em&gt;se servir&lt;/em&gt; d'elles pour implanter la d&#233;pendance &#224; leurs produits, comme le faisaient les industriels du tabac qui ont distribu&#233; des cigarettes gratuites &#224; des enfants d'&#226;ge scolaire &lt;a href=&#034;http://www.gnu.org/education/edu-schools.fr.html#note2&#034;&gt;(2)&lt;/a&gt;. Ces d&#233;veloppeurs ne donneront pas d'exemplaire gratuit &#224; ces &#233;l&#232;ves et &#233;tudiants une fois qu'ils auront leur dipl&#244;me, ni aux entreprises pour lesquelles ils travailleront. Une fois d&#233;pendant, il vous faut payer.&lt;/p&gt;
&lt;p&gt;Le logiciel libre permet aux &#233;l&#232;ves et &#233;tudiants d'apprendre comment les programmes fonctionnent. Certains programmeurs-n&#233;s, une fois adolescents, ont soif d'apprendre tout ce qu'il y a &#224; savoir de leur ordinateur et de ses logiciels. Ils sont extr&#234;mement curieux de lire le code source des programmes qu'ils utilisent tous les jours.&lt;/p&gt;
&lt;p&gt;Le logiciel privateur rejette cette soif de connaissance ; il dit : &#171; Le savoir que tu recherches est un secret &#8211; apprendre est interdit ! &#187; Le logiciel privateur est par essence l'ennemi de l'&#233;ducation, aussi ne doit-il pas &#234;tre tol&#233;r&#233; &#224; l'&#233;cole, sauf comme objet de r&#233;troing&#233;nierie.&lt;/p&gt;
&lt;p&gt;Le logiciel libre encourage tout le monde &#224; apprendre. La communaut&#233; du logiciel libre rejette ce &#171; culte de la technologie &#187; qui maintient le grand public dans l'ignorance de son fonctionnement ; nous encourageons les &#233;l&#232;ves et &#233;tudiants de tous &#226;ges et toutes origines &#224; lire le code source et &#224; apprendre autant qu'ils veulent savoir.&lt;/p&gt;
&lt;p&gt;Les &#233;coles qui utilisent du logiciel libre permettent aux apprentis programmeurs dou&#233;s de progresser. Comment les programmeurs-n&#233;s apprennent-ils &#224; &#234;tre de bons programmeurs ? Ils ont besoin de lire et de comprendre de vrais programmes que les gens utilisent r&#233;ellement. On apprend &#224; &#233;crire du code bon et clair en lisant beaucoup de code et en &#233;crivant beaucoup de code. Seul le logiciel libre le permet.&lt;/p&gt;
&lt;p&gt;Comment apprend-on &#224; &#233;crire le code des grands programmes ? En apportant beaucoup de modifications &#224; de grands programmes existants. Le logiciel libre permet de le faire ; le logiciel propri&#233;taire l'interdit. Toute &#233;cole peut donner &#224; ses &#233;l&#232;ves ou &#233;tudiants une chance de ma&#238;triser l'art de la programmation, mais seulement si c'est une &#233;cole du logiciel libre.&lt;/p&gt;
&lt;p&gt;La raison la plus profonde d'utiliser du logiciel libre dans les &#233;coles concerne l'&#233;ducation morale. Nous attendons de l'&#233;cole qu'elle enseigne aux &#233;l&#232;ves et &#233;tudiants des connaissances de base et des comp&#233;tences utiles, mais c'est seulement une partie de sa mission. Sa mission la plus fondamentale est d'enseigner la bonne citoyennet&#233;, y compris l'habitude d'aider les autres. Dans le domaine de l'informatique, cela signifie apprendre aux &#233;l&#232;ves &#224; partager les logiciels. Il faut qu'on leur dise d&#232;s la maternelle : &#171; Si tu apportes un logiciel &#224; l'&#233;cole, tu devras le partager avec les autres &#233;l&#232;ves. Tu dois montrer le code source &#224; la classe, au cas o&#249; quelqu'un voudrait s'instruire. Il est donc interdit d'apporter du logiciel privateur en classe, sauf pour les exercices de r&#233;troing&#233;nierie. &#187;&lt;/p&gt;
&lt;p&gt;Bien entendu, l'&#233;cole doit pratiquer ce qu'elle pr&#234;che : elle doit fournir &#224; la classe uniquement des logiciels libres (sauf pour les soumettre &#224; la r&#233;troing&#233;nierie) et en partager des exemplaires avec les &#233;l&#232;ves (y compris le code source) pour qu'ils les copient, les emportent &#224; la maison et les redistribuent autour d'eux.&lt;/p&gt;
&lt;p&gt;Enseigner l'utilisation des logiciels libres aux &#233;l&#232;ves et &#233;tudiants et prendre part &#224; la communaut&#233; du logiciel libre est une forme concr&#232;te d'&#233;ducation &#224; la citoyennet&#233;. De plus, cela propose aux &#233;tudiants un mod&#232;le bas&#233; sur le service public au lieu de celui que pr&#244;nent les magnats de l'&#233;conomie. Les &#233;coles de tous niveaux doivent se servir de logiciel libre.&lt;/p&gt;
&lt;p&gt;Si vous &#234;tes dans le milieu de l'enseignement &#8211; que ce soit comme &#233;l&#232;ve, &#233;tudiant, enseignant, employ&#233;, administrateur, donateur ou parent &#8211; il est de votre responsabilit&#233; de faire campagne pour que l'&#233;cole migre vers le logiciel libre. Si une demande faite en priv&#233; ne permet pas d'atteindre ce but, portez la question sur la place publique dans ces communaut&#233;s ; c'est ainsi que les gens prendront conscience du probl&#232;me et que vous trouverez des alli&#233;s dans votre campagne.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Attention, l'&#233;cole qui acceptera une telle offre pourrait trouver les mises &#224; jour ult&#233;rieures plut&#244;t on&#233;reuses.&lt;/li&gt;
&lt;li&gt;L'industriel du tabac RJ Reynolds Tobacco Company fut condamn&#233; &#224; 15 millions de dollars d'amende en 2002 pour avoir fourni des &#233;chantillons gratuits de cigarettes &#224; l'occasion d'&#233;v&#233;nements auxquels participaient des enfants. Voir &lt;a href=&#034;http://www.bbc.co.uk/worldservice/sci_tech/features/health/tobaccotrial/usa.htm&#034;&gt; http://www.bbc.co.uk/worldservice/sci_tech/features/health/tobaccotrial/usa.htm&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#034;field field-name-field-mediafront field-type-text field-label-hidden&#034;&gt;&lt;div class=&#034;field-items&#034;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		&lt;div class="hyperlien"&gt;Voir en ligne : &lt;a href="http://www.nplug.be/node/141" class="spip_out"&gt;http://www.nplug.be/node/141&lt;/a&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Imprimer un grand document sur des feuilles A4</title>
		<link>https://clx.asso.fr/spip/?Imprimer-un-grand-document-sur-des-feuilles-A4</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?Imprimer-un-grand-document-sur-des-feuilles-A4</guid>
		<dc:date>2007-01-30T07:57:18Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>David Cobac</dc:creator>


		<dc:subject>LaTeX</dc:subject>

		<description>&lt;p&gt;Un peu de calculs, de LaTeX et hop !&lt;/p&gt;

-
&lt;a href="https://clx.asso.fr/spip/?-Transition-vers-le-Libre-" rel="directory"&gt;Transition vers le Libre...&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-LaTeX-+" rel="tag"&gt;LaTeX&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;M'int&#233;ressant &#224; la g&#233;n&#233;alogie, j'ai con&#231;u un arbre dont la dimension d&#233;passe largement celle d'un A4.&lt;br class='autobr' /&gt;
Le driver de mon imprimante ne le faisant pas, j'ai alors cherch&#233; sur Internet le moyen de d&#233;couper mon document et l&#224; ... pas beaucoup de solutions, voire pas du tout !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;Pas n'importe quel document&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il ne s'agit pas d'un document quelconque : il s'agit d'un fichier de type EPS ; je dis de type EPS car en fait il s'agit d'un fichier cr&#233;&#233; par metapost.&lt;/p&gt;
&lt;p&gt;Quelles diff&#233;rences avec un autre type de document allez-vous me dire ?&lt;br class='autobr' /&gt;
H&#233; bien c'est simple :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; c'est &#171; lisible &#187; puisque c'est un fichier de type texte ;&lt;/li&gt;&lt;li&gt; il est parfaitement &#171; encadr&#233; &#187; : c'est-&#224;-dire que dans les premi&#232;res lignes du document (celles d&#233;crivant le type de document, les lignes non interpr&#233;t&#233;es) se trouve une ligne tr&#232;s particuli&#232;re : la &#171; Bounding Box &#187;. C'est cette derni&#232;re chose qui est particuli&#232;rement int&#233;ressante.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La Bounding Box&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Voil&#224; ci-dessous par exemple les premi&#232;res lignes de mon fichier :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;%!PS %%BoundingBox: -2700 -36 2749 908 %%Creator: MetaPost %%CreationDate: 2007.01.05:1058 %%Pages: 1 %*Font: futr8r 13.1985 9.96265 28:c600007fedbb607ffffee0000000000000000000400000 01c %*Font: futb8r 13.1985 9.96265 41:f779b6 %*Font: fourier-ms 10.03638 9.96265 b1:800008 %*Font: futr8r 10.03638 9.96265 28:c4ffc17fbfbb007fdfff6000000000000000000040000 020d0001 %*Font: futb8r 10.55885 9.96265 41:f9befbc0000000000000000000000000008 %%EndProlog&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La ligne qui m'int&#233;resse est &#233;videmment :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;%%BoundingBox: -2700 -36 2749 908&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Il s'agit de deux paires de coordonn&#233;es :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-2700 -36&lt;/code&gt; est le premier point de coordonn&#233;es (-2700,-36) ;&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;2749 908&lt;/code&gt; est le deuxi&#232;me point de coordonn&#233;es (2749,908).&lt;br class='autobr' /&gt;
En clair, le premier point est le point sup&#233;rieur gauche du document et le deuxi&#232;me, le point inf&#233;rieur droit.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Bref, je connais les dimensions de mon document...si je connais l'unit&#233; utilis&#233;e.&lt;br class='autobr' /&gt;
H&#233; bien l'unit&#233; est le &#171; point postscript &#187;, si on ne sait pas, un petit tour sur &lt;a href=&#034;http://www.google.fr/search?hl=fr&amp;q=1+point+postscript&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;google&lt;/a&gt; : 1 point PostScript = 0,352777778 millim&#232;tres&lt;br class='autobr' /&gt;
Ainsi, une rapide conversion me dit que mon document fait une largeur de 192.23 cm (soit 1m 92 !) et une hauteur de 33.30 cm.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Une r&#233;duction et un d&#233;coupage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ainsi, ce document fait un peu plus en hauteur qu'une page A4 en orientation portrait (pas de chance). On va donc le r&#233;duire un peu, en enlevant de notre page A4 1cm en bas et en haut, il nous reste 27.7 cm, ce qui nous fait une r&#233;duction d'environ 17%. Le coefficient multiplicateur &#224; appliquer est donc 0.83&lt;br class='autobr' /&gt;
Notre largeur sera alors d'environ 159.9 cm, presque 1m 60.&lt;br class='autobr' /&gt;
L&#224; encore, en enlevant 1 cm de chaque c&#244;t&#233; de notre page A4, il nous faudra 9 pages.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le principe&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nous allons faire un document LaTeX constitu&#233; de 9 pages, chacune d'elles contenant le bon bout de notre fichier EPS. Pour cela nous utiliserons le package &lt;i&gt;graphicx&lt;/i&gt; donnant acc&#232;s &#224; la commande &#171; \includegraphics &#187;. Cette commande peut afficher, gr&#226;ce &#224; l'option &lt;i&gt;bb&lt;/i&gt;, une partie d'une image EPS en indiquant la zone &#224; afficher par le principe de la &#171; Bounding Box &#187;.&lt;/p&gt;
&lt;p&gt;Je dois donc former 9 &#171; Bounding Box &#187; cons&#233;cutives, les voil&#224; :&lt;/p&gt;
&lt;p&gt;bb=-2700 -36 -2095 908&lt;/p&gt;
&lt;p&gt;bb=-2095 -36 -1490 908&lt;/p&gt;
&lt;p&gt;bb=-1490 -36 -885 908&lt;/p&gt;
&lt;p&gt;bb=-885 -36 -280 908&lt;/p&gt;
&lt;p&gt;bb=-280 -36 325 908&lt;/p&gt;
&lt;p&gt;bb=325 -36 930 908&lt;/p&gt;
&lt;p&gt;bb=930 -36 1535 908&lt;/p&gt;
&lt;p&gt;bb=1535 -36 2140 908&lt;/p&gt;
&lt;p&gt;bb=2140 -36 2745 908&lt;/p&gt;
&lt;p&gt;On remarque que la division par 9 ne tombe pas juste, il faut donc r&#233;ajuster de 4 points postscript notre largeur, la derni&#232;re sera donc r&#233;ajust&#233;e &#224; :&lt;br class='autobr' /&gt;
bb=2140 -36 2749 908&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le fichier LaTeX&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il n'y a donc plus qu'&#224; constituer notre fichier LaTeX :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\documentclass{article} \usepackage[a4paper,text={19cm,27.7cm},dvips]{geometry} \usepackage[dvips]{graphicx} \usepackage{pstricks} \pagestyle{empty} \begin{document} \includegraphics[bb=-2700 -36 -2095 908,clip,scale=.83]%% {monfichier.eps} \newpage \includegraphics[bb=-2095 -36 -1490 908,clip,scale=.83]%% {monfichier.eps} \newpage \includegraphics[bb=-1490 -36 -885 908,clip,scale=.83]%% {monfichier.eps} \newpage \includegraphics[bb=-885 -36 -280 908,clip,scale=.83]%% {monfichier.eps} \newpage \includegraphics[bb=-280 -36 325 908,clip,scale=.83]%% {monfichier.eps} \newpage \includegraphics[bb=325 -36 930 908,clip,scale=.83]%% {monfichier.eps} \newpage \includegraphics[bb=930 -36 1535 908,clip,scale=.83]%% {monfichier.eps} \newpage \includegraphics[bb=1535 -36 2140 908,clip,scale=.83]%% {monfichier.eps} \newpage \includegraphics[bb=2140 -36 2749 908,clip,scale=.83]%% {monfichier.eps} \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Cerise sur le g&#226;teau&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C'est bien mais pour d&#233;couper c'est pas terriblement efficace sans pointill&#233;s (ou plut&#244;t traits-till&#233;s (!)), alors on fait une commande de pointill&#233;s :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\newcommand{\separation}{%% \begin{pspicture}(0,0)%% \psline[linestyle=dashed,linewidth=.05mm](0pt,-1.5cm)(0pt,28.5cm)%% \end{pspicture}}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et notre code LaTeX devient :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\documentclass{article} \usepackage[a4paper,text={19cm,27.7cm},dvips]{geometry} \usepackage[dvips]{graphicx} \usepackage{pstricks} \pagestyle{empty} \newcommand{\separation}{%% \begin{pspicture}(0,0)%% \psline[linestyle=dashed,linewidth=.05mm](0pt,-1.5cm)(0pt,28.5cm)%% \end{pspicture}} \begin{document} \includegraphics[bb=-2700 -36 -2095 908,clip,scale=.83]%% {monfichier.eps}\separation \newpage \separation%% \includegraphics[bb=-2095 -36 -1490 908,clip,scale=.83]%% {monfichier.eps}\separation \newpage \separation%% \includegraphics[bb=-1490 -36 -885 908,clip,scale=.83]%% {monfichier.eps}\separation \newpage \separation%% \includegraphics[bb=-885 -36 -280 908,clip,scale=.83]%% {monfichier.eps}\separation \newpage \separation%% \includegraphics[bb=-280 -36 325 908,clip,scale=.83]%% {monfichier.eps}\separation \newpage \separation%% \includegraphics[bb=325 -36 930 908,clip,scale=.83]%% {monfichier.eps}\separation \newpage \separation%% \includegraphics[bb=930 -36 1535 908,clip,scale=.83]%% {monfichier.eps}\separation \newpage \separation%% \includegraphics[bb=1535 -36 2140 908,clip,scale=.83]%% {monfichier.eps}\separation \newpage \separation%% \includegraphics[bb=2140 -36 2749 908,clip,scale=.83]%% {monfichier.eps}\separation \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il n'y a plus qu'&#224; compiler notre &lt;i&gt;monfichier.tex&lt;/i&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$ latex monfichier&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;puis de produire un fichier PostScript :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$ dvips monfichier.dvi -o&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et nous obtenons notre joli &lt;i&gt;monfichier.ps&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le g&#226;teau est un peu pourri&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;G&#233;nial direz-vous...mais non, en fait pas terriblement efficace, en effet le fichier que je viens de produire, ici &#224; la maison :-) , p&#232;se finalement environ 2,4 Mo alors que mon image de d&#233;part p&#232;se &#224; peine 251 Ko ! H&#233; bien oui, c'est bien loin d'&#234;tre un d&#233;coupage, l'image est tout simplement copi&#233; 9 fois dans le fichier produit finalement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Automatiser&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lire avec une expression r&#233;guli&#232;re la ligne de la &#171; Bounding Box &#187; est une &#233;vidence, faire une petite conversion d'unit&#233;s et une petite division aussi.&lt;br class='autobr' /&gt;
Donc le processus d&#233;crit dans cette page peut relativement facilement &#234;tre script&#233; ; par contre, son int&#233;r&#234;t est limit&#233; par la taille des fichiers obtenus : si mon arbre augmente en hauteur, j'aurais au moins 2 pages A4 en hauteur et au total 18 feuilles d'o&#249; un fichier d'environ 5 Mo... le jeu n'en vaut assur&#233;ment pas la chandelle !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Certains parleront de la commande &lt;i&gt;poster&lt;/i&gt;. Chez moi, elle n'a tout simplement pas fonctionn&#233; malgr&#233; des heures d'efforts et des passages par &lt;i&gt;pstops&lt;/i&gt;.&lt;br class='autobr' /&gt;
C'est bien dommage car dans l'absolu, c'est une commande qui simplifie largement les choses !&lt;br class='autobr' /&gt;
Si vous avez une solution qui est plus efficace notamment au niveau de la taille finale, n'h&#233;sitez pas &#224; me contacter : elle m'int&#233;resse vivement !&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Pr&#233;sentation d'op&#233;rations avec la classe Beamer de LaTeX et le package xlop</title>
		<link>https://clx.asso.fr/spip/?Presentation-d-operations-avec-la-classe-Beamer-de-LaTeX-et-le-package-xlop</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?Presentation-d-operations-avec-la-classe-Beamer-de-LaTeX-et-le-package-xlop</guid>
		<dc:date>2007-01-30T07:54:54Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>David Cobac</dc:creator>



		<description>
&lt;p&gt;Il s'agit de faire une pr&#233;sentation d'une simple addition en faisant appara&#238;tre au fur et &#224; mesure le calcul pos&#233;. Pour ce faire, j'utilise la fabuleuse classe Beamer de LaTeX avec le non moins fabuleux package xlop. &lt;br class='autobr' /&gt; Le code basique de mon op&#233;ration avec xlop &lt;br class='autobr' /&gt;
Consid&#233;rons le package xlop. Il permet d'effectuer des op&#233;rations en pr&#233;cision quelconque et de les pr&#233;senter &#233;ventuellement sous forme pos&#233;e. Pour une op&#233;ration basique pos&#233;e : \opadd128.0543.1 voici ce qui est obtenu : &lt;br class='autobr' /&gt;
On (&#8230;)&lt;/p&gt;


-
&lt;a href="https://clx.asso.fr/spip/?-Transition-vers-le-Libre-" rel="directory"&gt;Transition vers le Libre...&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L150xH114/xpdf1-399b6.png?1759553411' alt='' class='spip_logo spip_logo_right' width='150' height='114' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Il s'agit de faire une pr&#233;sentation d'une simple addition en faisant appara&#238;tre au fur et &#224; mesure le calcul pos&#233;.&lt;br class='autobr' /&gt;
Pour ce faire, j'utilise la fabuleuse classe Beamer de LaTeX avec le non moins fabuleux package xlop.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;Le code basique de mon op&#233;ration avec xlop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Consid&#233;rons le package &lt;i&gt;xlop&lt;/i&gt;. Il permet d'effectuer des op&#233;rations en pr&#233;cision quelconque et de les pr&#233;senter &#233;ventuellement sous forme pos&#233;e.&lt;br class='autobr' /&gt;
Pour une op&#233;ration basique pos&#233;e :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\opadd{128.05}{43.1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;voici ce qui est obtenu :&lt;/p&gt;
&lt;div class='spip_document_380 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L96xH79/xpdf2-37193.png?1760077241' width='96' height='79' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;On voit, h&#233;las, tout appara&#238;tre. Nous allons d&#233;composer l'op&#233;ration en diff&#233;rentes &#233;tapes (comme &#224; la main) :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&#201;tape 1 : on enl&#232;ve le r&#233;sultat et la retenue&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On les dessine donc en blanc (couleur de fond de page), la couleur blanche est obtenue avec le package &lt;i&gt;xcolor&lt;/i&gt; en rajoutant la commande suivante dans notre ent&#234;te de fichier LaTeX : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\newcommand{\blanc}{\textcolor{white}}&lt;/code&gt;&lt;br class='autobr' /&gt;
De plus, je r&#233;duis un peu la taille de la retenue.&lt;/p&gt;
&lt;p&gt;Notre op&#233;ration est donc :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\opadd[resultstyle=\blanc,carrystyle=\small\blanc]{128.05}{43.1}&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_381 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L101xH71/xpdf3-bcd5a.png?1760077241' width='101' height='71' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&#201;tape 2 : on ajoute les z&#233;ros inutiles&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On remplace les &#171; blancs &#187; de l'op&#233;ration par des z&#233;ros :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\opadd[resultstyle=\blanc,carrystyle=\small\blanc,deletezero=false]{128.05}{43.1}&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_382 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L96xH83/xpdf4-0f351.png?1760077241' width='96' height='83' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&#201;tape 3 : on met en &#233;vidence en rouge la premi&#232;re op&#233;ration&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;La premi&#232;re est l'addition du 5 et du 0, on les colorie en rouge (couleur fabriqu&#233;e de la m&#234;me mani&#232;re que pr&#233;c&#233;demment, voir l'ent&#234;te finale dans la suite) ; pour cela &lt;i&gt;xlop&lt;/i&gt; poss&#232;de une indexation par ligne et colonne des op&#233;randes, un indice n&#233;gatif corrspondant &#224; une position derri&#232;re la virgule, un traitement identique se fera tout au long des &#233;tapes dans lesquelles les op&#233;rations effectu&#233;es seront mises en &#233;vidence alors que celles pr&#233;c&#233;demment faites seront mises en noire.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\opadd[resultstyle=\blanc,carrystyle=\small\blanc,deletezero=false,%% operandstyle.1.-2=\rouge,operandstyle.2.-2=\rouge,resultstyle.-2=\rouge]{128.05}{43.1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_383 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L93xH74/xpdf5-6d29d.png?1760077241' width='93' height='74' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&#201;tape 4 : on efface l'op&#233;ration pr&#233;c&#233;dente et on dessine en rouge la suivante&lt;/i&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\opadd[resultstyle=\blanc,carrystyle=\small\blanc,deletezero=false,%% operandstyle.1.-1=\rouge,operandstyle.2.-1=\rouge,resultstyle.-1=\rouge]{128.05}{43.1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_384 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L87xH72/xpdf6-c88db.png?1760077241' width='87' height='72' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&#201;tape 5 : traitement de la retenue&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;La retenue appara&#238;t, on la met en plus petit et en rouge :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\opadd[resultstyle=\blanc,carrystyle=\small\rouge,deletezero=false,%% operandstyle.1.1=\rouge,operandstyle.2.1=\rouge,resultstyle.1=\rouge]{128.05}{43.1}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_385 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L93xH76/xpdf7-2928d.png?1760077241' width='93' height='76' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;i&gt;Derni&#232;res &#233;tapes&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Je vous laisse deviner la suite des &#233;v&#233;nements c'est pas bien compliqu&#233;. Une fois, toutes les op&#233;rations interm&#233;diares effectu&#233;es, il n'y plus qu'&#224; r&#233;afficher l'ensemble, c'est-&#224;-dire avec le r&#233;sultat final.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Une pr&#233;sentation &#171; &#224; la Beamer &#187;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le squelette type d'un document beamer simple pour notre usage est le suivant :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\documentclass{beamer} %% pour le fran&#231;ais \usepackage[frenchb]{babel} %% pour des polices compatibles pdf \usepackage{aeguill} %% pour xlop et les couleurs \usepackage{xlop} \usepackage{xcolor} %% d&#233;finition de mes couleurs \newcommand{\blanc}{\textcolor{white}} \newcommand{\noir}{\textcolor{black}} \newcommand{\rouge}{\textcolor{red}} %% d&#233;but du document \begin{document} % \begin{frame} Mon op&#233;ration sera ici ! \end{frame} % \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui donne une fois compil&#233; avec &lt;i&gt;pdflatex&lt;/i&gt; la pr&#233;sentation suivante :&lt;/p&gt;
&lt;div class='spip_document_379 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L500xH378/xpdf1-b0c45.png?1760077241' width='500' height='378' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Int&#233;gration de l'op&#233;ration dans Beamer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il n'y a plus qu'&#224; demander &#224; Beamer de mettre sur la m&#234;me page, une &#233;tape puis une autre etc. en superposant &#233;videmment parfaitement pour &#233;viter tout &#171; saut &#187; mal venu ; c'est ici qu'il faut penser &#224; notre retenue : elle doit &lt;i&gt;toujours&lt;/i&gt; &#234;tre pr&#233;sente (m&#234;me s'il n'est pas n&#233;cessaire de l'afficher, il faut la dessiner en blanc avec la bonne taille) pour que notre op&#233;ration ne saute pas lorsqu'elle appara&#238;t.&lt;/p&gt;
&lt;p&gt;Beamer dispose de tout un lot de fonctionnalit&#233;s d'affichage ou de non affichage sur la page ; qui plus est, il n'est pas n&#233;cessaire de conna&#238;tre le num&#233;ro de notre transparent, Beamer le calcule seul. Je vais utiliser la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\only&lt;+&gt;{mon operation}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\only&lt;/code&gt; permet d'&#234;tre exclusif sur l'affichage avec le num&#233;ro de transparent qui va suivre. Ici le num&#233;ro de transparent est &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;+&lt;/code&gt;, il s'agit d'une incr&#233;mentation automatique du num&#233;ro.&lt;/p&gt;
&lt;p&gt;Voici donc &#224; quoi ressemblera l'&#233;tape 1 :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\only&lt;+&gt;{\opadd[resultstyle=\blanc,carrystyle=\small\blanc]{128.05}{43.1}}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Raffinements et d&#233;couverte frame par frame de l'op&#233;ration&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Voil&#224;, tout est fin pr&#234;t mais...un peu petit pour une pr&#233;sentation.&lt;br class='autobr' /&gt;
Je vais donc imposer un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[12pt]&lt;/code&gt; en option de la classe beamer et un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\Huge&lt;/code&gt; pour avoir quelque chose de vraiment grand.&lt;br class='autobr' /&gt;
Nous devons alors refaire calculer les espacements par &lt;i&gt;xlop&lt;/i&gt; et en plus j'impose un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;columnwidth=2ex&lt;/code&gt; pour encore mieux espacer. De plus vous avez sans doute noter que, par d&#233;faut, le s&#233;parateur d&#233;cimal est le point alors cela n&#233;cessite un petit r&#233;glage suppl&#233;mentaire, ainsi je fais finalement :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\begin{frame}[t] \Huge \opset{decimalsepsymbol={,},columnwidth=2ex,lineheight=\baselineskip}% ...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt; Pour conclure, je centre ce qui suit avec un environnement &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;center&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Voil&#224; donc le code final :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\documentclass[12pt]{beamer} \usepackage[frenchb]{babel} \usepackage{aeguill} \usepackage{xlop} \usepackage{xcolor} \newcommand{\blanc}{\textcolor{white}} \newcommand{\noir}{\textcolor{black}} \newcommand{\rouge}{\textcolor{red}} \begin{document} \begin{frame} \Huge \opset{decimalsepsymbol={,},columnwidth=2ex,lineheight=\baselineskip}% \begin{center} \only&lt;+&gt;{\opadd[resultstyle=\blanc,carrystyle=\small\blanc]%% {128.05}{43.1}}%% %% \only&lt;+&gt;{\opadd[resultstyle=\blanc,carrystyle=\small\blanc,deletezero=false]%% {128.05}{43.1}}%% %% \only&lt;+&gt;{\opadd[resultstyle=\blanc,carrystyle=\small\blanc,deletezero=false,%% operandstyle.1.-2=\rouge,operandstyle.2.-2=\rouge,resultstyle.-2=\rouge]%% {128.05}{43.1}}%% %% \only&lt;+&gt;{\opadd[resultstyle=\blanc,carrystyle=\small\blanc,deletezero=false,%% operandstyle.1.-1=\rouge,operandstyle.2.-1=\rouge,resultstyle.-1=\rouge]%% {128.05}{43.1}}%% %% \only&lt;+&gt;{\opadd[resultstyle=\blanc,carrystyle=\small\rouge,deletezero=false,%% operandstyle.1.1=\rouge,operandstyle.2.1=\rouge,resultstyle.1=\rouge]%% {128.05}{43.1}}%% %% \only&lt;+&gt;{\opadd[resultstyle=\blanc,carrystyle=\small\rouge,deletezero=false,%% operandstyle.1.2=\rouge,operandstyle.2.2=\rouge,resultstyle.2=\rouge]%% {128.05}{43.1}}%% %% \only&lt;+&gt;{\opadd[resultstyle=\blanc,carrystyle=\small\blanc,deletezero=false,%% operandstyle.1.3=\rouge,operandstyle.2.3=\rouge,resultstyle.3=\rouge]%% {128.05}{43.1}}%% %% \only&lt;+&gt;{\opadd[carrystyle=\small,deletezero=false]{128.05}{43.1}}%% \end{center} \end{frame} \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le fichier final est joint &#224; cet article.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quelques liens&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;http://latex-beamer.sourceforge.net/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;la classe Beamer&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;http://melusine.eu.org/syracuse/jcc/xlop/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;le package xlop&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;http://latex-pearson.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;un livre sur LaTeX avec une pr&#233;sentation de Beamer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="https://clx.asso.fr/spip/IMG/pdf/operation.pdf" length="49911" type="application/pdf" />
		

	</item>
	<item xml:lang="fr">
		<title>Accord-cadre Microsoft France / Minist&#232;re de l'Education nationale du 18 d&#233;cembre 2003, la r&#233;action de Scid&#233;ralle.</title>
		<link>https://clx.asso.fr/spip/?Accord-cadre-Microsoft-France-Ministere-de-l-Education-nationale-du-18-decembre</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?Accord-cadre-Microsoft-France-Ministere-de-l-Education-nationale-du-18-decembre</guid>
		<dc:date>2004-04-28T14:12:15Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne (DaffyDuke)</dc:creator>



		<description>

-
&lt;a href="https://clx.asso.fr/spip/?-Transition-vers-le-Libre-" rel="directory"&gt;Transition vers le Libre...&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_ps'&gt;&lt;p&gt;Cet article est sur le site de l'association Scid&#233;ralle.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Production de courbes en environnement LaTeX</title>
		<link>https://clx.asso.fr/spip/?Production-de-courbes-en-environnement-LaTeX</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?Production-de-courbes-en-environnement-LaTeX</guid>
		<dc:date>2002-12-16T10:25:37Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>David Cobac</dc:creator>


		<dc:subject>LaTeX</dc:subject>

		<description>&lt;p&gt;L'article propose d'explorer trois possibilit&#233;s de codage de courbes de fonctions pour une int&#233;gration dans un code source LaTeX, &#224; partir de trois exemples.&lt;/p&gt;

-
&lt;a href="https://clx.asso.fr/spip/?-Transition-vers-le-Libre-" rel="directory"&gt;Transition vers le Libre...&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-LaTeX-+" rel="tag"&gt;LaTeX&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L150xH89/fig1_gnuplot-a0f50.png?1759525815' alt='' class='spip_logo spip_logo_right' width='150' height='89' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Pour produire des images avec LaTeX, il existe de nombreuses possibilit&#233;s dont l'int&#233;gration dans le code&lt;br class='autobr' /&gt;
source m&#234;me de LaTeX. Mais souvent, on utilise des logiciels externes pour illustrer les documents. LaTeX nous&lt;br class='autobr' /&gt;
impose un format unique d'image : l'EPS (Encapsulated PostScript). Cela peut sembler restrictif mais en&lt;br class='autobr' /&gt;
d&#233;finitive, cela permet d'unifier toutes les documents produits.&lt;br class='manualbr' /&gt;L'extension &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;graphicx&lt;/code&gt; autorise avec la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\includegraphics&lt;/code&gt; de manipuler les&lt;br class='autobr' /&gt;
images au format EPS et metapost de mani&#232;re assez ais&#233;e, permettant le redimensionnement absolu ou relatif, la rotation,&lt;br class='autobr' /&gt;
etc.&lt;br class='manualbr' /&gt;N&#233;anmoins, il peut &#234;tre int&#233;ressant de produire une figure dans le code source LaTeX ne serait-ce que pour&lt;br class='autobr' /&gt;
y int&#233;grer sans difficult&#233; du code LaTeX et assurer ainsi une harmonie parfaite entre le texte et l'image.&lt;br class='autobr' /&gt;
Voici donc une petite pr&#233;sentation de quelques outils produisant des courbes de fonctions dans ou hors&lt;br class='autobr' /&gt;
code source.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Int&#233;gration dans le code source&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;PsTricks&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le leader incontest&#233; dans ce domaine est l'extension &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pstricks&lt;/code&gt;. Ses possibilit&#233;s sont&lt;br class='autobr' /&gt;
tellement &#233;tendues qu'il est impossible ici de citer tout ce qu'il peut faire. Son inconv&#233;nient&lt;br class='autobr' /&gt;
majeur est le suivant : il produit du code PostScript donc non visualisable dans un afficheur dvi&lt;br class='autobr' /&gt;
traditionnel.&lt;/p&gt;
&lt;p&gt;PsTricks est un ensemble homog&#232;ne d'extensions diverses. Ici l'extension appel&#233;e pour int&#233;grer des courbes&lt;br class='autobr' /&gt;
s'appelle &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pst-plot&lt;/code&gt; ; l'appel de cette extension charge automatiquement l'extension commune&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pstricks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Nous d&#233;finissons notre trac&#233; dans un environnement &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pspicture&lt;/code&gt; analogue de l'environnement&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;picture&lt;/code&gt; qui initialise, &#224; chaque appel, les param&#232;tres par d&#233;faut de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pstricks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour tracer des courbes, il nous faut rentrer une &#233;quation.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Pstricks&lt;/code&gt; utilise une syntaxe&lt;br class='autobr' /&gt;
particuli&#232;re (celle du PostScript tout simplement) qui ravira les amateurs de calculatrices HP : ce&lt;br class='autobr' /&gt;
langage est bas&#233; sur une &#034;pile&#034; voici les syntaxes des op&#233;rations basiques :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Nom PS&lt;/td&gt;
&lt;td&gt;Sign.&lt;/td&gt;
&lt;td&gt;Utilisation&lt;/td&gt;
&lt;td&gt;R&#233;sultat&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;add&lt;/td&gt;
&lt;td&gt;+&lt;/td&gt;
&lt;td&gt;2 3 add&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;div&lt;/td&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;td&gt;6 2 div&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;mul&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;2 3 mul&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;sub&lt;/td&gt;
&lt;td rowspan='2'&gt;-&lt;/td&gt;
&lt;td&gt;2 3 sub&lt;/td&gt;
&lt;td&gt;-1&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;exp&lt;/td&gt;
&lt;td&gt;2 3 exp&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;PostScript d&#233;finit aussi les op&#233;rateurs : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;neg&lt;/code&gt; l'op&#233;rateur &lt;a href=&#034;http://www.linux-france.org/prj/jargonf/U/unaire.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;unaire&lt;/a&gt; de signe ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;abs&lt;/code&gt; la valeur absolue ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ln&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;log&lt;/code&gt; les logarithmes respectivement n&#233;perien et &#224; base 10 ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sin&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cos&lt;/code&gt; d&#233;signent les sinus et cosinus d'un angle exprim&#233; en degr&#233;s.&lt;/p&gt;
&lt;p&gt;Notons que vous devrez calculer vous-m&#234;me la valeur de la tangente en divisant le sinus par &lt;br class='autobr' /&gt;
le cosinus, car elle est ind&#233;finie. Pour en finir avec&lt;br class='autobr' /&gt;
les lignes trigonom&#233;triques, remarquons l'op&#233;rateur binaire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;atan&lt;/code&gt; qui renvoie un angle en&lt;br class='autobr' /&gt;
degr&#233;s (c'est-&#224;-dire l'angle dont la tangente est le quotient du premier sur le second).&lt;/p&gt;
&lt;p&gt;Notons aussi l'existence de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;idiv&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mod&lt;/code&gt; qui d&#233;signent respectivement le quotient et le reste&lt;br class='autobr' /&gt;
dans une division euclidienne. Des op&#233;rateurs d'arrondis ou de troncature sont d&#233;finis mais leur&lt;br class='autobr' /&gt;
utilisation dans notre cadre reste tr&#232;s limit&#233;.&lt;/p&gt;
&lt;p&gt;N'oublions pas les commandes : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;dup&lt;/code&gt; qui copie le contenu de la pile,&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;exch&lt;/code&gt; qui &#233;change les lignes 1 et 2 de la pile, etc. Pour compl&#233;ter ces informations, consultez&lt;br class='autobr' /&gt;
la &lt;a href=&#034;http://www.cs.indiana.edu/docproject/programming/postscript/operators.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;liste des op&#233;rateurs&lt;br class='autobr' /&gt;
PostScript&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour finir, voici quelques trac&#233;s de courbes :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; exemple 1 : une courbe param&#233;tr&#233;e&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\begin{pspicture}(7.2cm,7.2cm) \rput(3.6,3.6){ % le rep&#232;re \psset{xunit=3cm,yunit=3cm} \psaxes{-&gt;}(0,0)(-1.2,-1.2)(1.2,1.2) \rput(0.05,-0.1){$0$} % le trac&#233; \parametricplot[plotpoints=200,linecolor=red]{0}{360}{t 2 mul sin 3 t mul cos} % la l&#233;gende \rput(.3,-.7){Courbe de Lissajous% $\left\{\begin{array}{ll}x(t)=\sin(2t)\\y(t)=\cos(3t)\end{array}\right.$% } } \end{pspicture}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_136 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L244xH244/fig1_pstricks-75934.png?1759547682' width='244' height='244' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Nous d&#233;finissons les unit&#233;s pour la figure avec la commandes &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\psset&lt;/code&gt; et les mots-cl&#233;s&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;xunit&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;yunit&lt;/code&gt;. Notre courbe de Lissajous &#233;tant incluse dans un carr&#233; de c&#244;t&#233; 2 centr&#233; sur l'origine, on prendra les valeurs de x dans l'intervalle [-1,2 ;1,2].&lt;/p&gt;
&lt;p&gt;La commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\parametricplot&lt;/code&gt; permet de dessiner une courbe param&#233;tr&#233;e. Ici, j'ai choisi de la&lt;br class='autobr' /&gt;
tracer avec 200 points (on aurait pu inclure cette option dans le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\psset&lt;/code&gt; et ce serait devenu&lt;br class='autobr' /&gt;
une option globale des trac&#233;s), le param&#232;tre t variant de 0 &#224; 360 degr&#233;s.&lt;/p&gt;
&lt;p&gt;On remarquera l'absence de s&#233;paration entre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;x(t)&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;y(t)&lt;/code&gt; dans leur d&#233;finition,&lt;br class='autobr' /&gt;
le travail par pile produira ici deux &#233;quations.&lt;/p&gt;
&lt;p&gt;Pour conclure, le point origine du rep&#232;re est normalement le coin inf&#233;rieur gauche, ce qui aurait centr&#233;&lt;br class='autobr' /&gt;
notre figure sur ce point-l&#224;, sans l'intervention d'une petite image par translation des trac&#233;s gr&#226;ce &#224; la&lt;br class='autobr' /&gt;
commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\rput&lt;/code&gt; ; cette m&#234;me commande est utilis&#233;e pour ins&#233;rer un texte. Ce dernier est centr&#233;,&lt;br class='autobr' /&gt;
par d&#233;faut, sur le point dont les coordonn&#233;es sont donn&#233;es en arguments.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; exemple 2 : une courbe de fonction&lt;/p&gt;
&lt;p&gt;Prenons une fonction trigonom&#233;trique : x|&#8212;&gt;sin(x)/x.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\begin{pspicture}(7cm,8cm) \rput(3.5,2.5){ % le rep&#232;re \psset{xunit=.25cm,yunit=4cm,plotpoints=200} \psaxes[Dx=3,Dy=.5]{-&gt;}(0,0)(-13,-.6)(13,1.3) \rput(-1,-0.05){$0$} % le trac&#233; \psplot[linewidth=.1mm]{-13}{13}{x 180 mul 3.14159 div sin x div} } \rput[l](0,7){$\displaystyle x\longmapsto \frac{\sin x}{x}$} \end{pspicture}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class='spip_document_137 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L237xH269/fig2_pstricks-dd09e.png?1759547682' width='237' height='269' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Ici, l'encha&#238;nement est le m&#234;me, avec la conversion en radians pour la fonction sinus. Bien s&#251;r le&lt;br class='autobr' /&gt;
d&#233;nominateur lui ne sera pas converti.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; exemple 3 : une illustration de cours&lt;/p&gt;
&lt;p&gt;Une petite illustration des fonctions de r&#233;f&#233;rence (non trigonom&#233;triques) sur l'intervalle [-1 ;1].&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\begin{pspicture}(10cm,8cm) \rput(3.6,4){ % le rep&#232;re \psset{xunit=3cm,yunit=3cm} \psaxes{-&gt;}(0,0)(-1.2,-1.2)(1.2,1.2) % les axes (origine) (coin_inf_gauche) (coin_sup_droit) \rput(0.05,-0.1){$0$} % les trac&#233;s \psplot[linestyle=dotted]{-1}{1}{x} % fonction identit&#233; \psplot[doubleline=true]{-1}{1}{x 2 exp}	% fonction carr&#233; \psplot[linestyle=dashed]{-1}{1}{x 3 exp}	% fonction cube \psplot[linecolor=red]{0}{1}{x sqrt} % fonction racine carr&#233;e % la l&#233;gende \psline[linestyle=dotted]{-}(1.3,1)(1.5,1)\rput[l](1.6,1){$x\longmapsto x$} \psline[doubleline=true]{-}(1.3,0.9)(1.5,0.9)\rput[l](1.6,0.9){$x\longmapsto x^2$} \psline[linestyle=dashed]{-}(1.3,0.8)(1.5,0.8)\rput[l](1.6,0.8){$x\longmapsto x^3$} \psline[linecolor=red]{-}(1.3,0.7)(1.5,0.7)\rput[l](1.6,0.7){$x\longmapsto \sqrt{x}$} } \end{pspicture}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class='spip_document_138 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L334xH269/fig3_pstricks-0f13d.png?1759547682' width='334' height='269' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Contrairement aux exemples identiques trait&#233;s dans la suite de l'article avec l'extension&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mfpic&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metapost&lt;/code&gt;, j'ai trac&#233; la courbe de la fonction carr&#233; avec un double&lt;br class='autobr' /&gt;
trait, option directement accessible en param&#232;tre qui, &#224; ma connaissance n'existe pas avec les autres mais&lt;br class='autobr' /&gt;
qui pourrait faire sans doute l'objet d'une macro.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;mfpic&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Mfpic&lt;/code&gt; est une sorte de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metapost&lt;/code&gt; embarqu&#233;, il permet d'int&#233;grer en ligne du code&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metafont&lt;/code&gt; et d&#233;finit lui-m&#234;me des commandes pour tracer des courbes. Cela peut sembler&lt;br class='autobr' /&gt;
g&#233;nialement int&#233;ressant mais la proc&#233;dure de mise en place n'est pas des plus faciles ; en effet, &#224; partir&lt;br class='autobr' /&gt;
du code &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mfpic&lt;/code&gt; que vous saisissez, la compilation LaTeX produit le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metafont&lt;/code&gt;&lt;br class='autobr' /&gt;
correspondant. Il faut donc compiler ce nouveau fichier avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metafont&lt;/code&gt; de telle sorte que soit&lt;br class='autobr' /&gt;
produit un fichier de m&#233;triques de police tfm, puis compiler le fichier gf produit afin de cr&#233;er l'image&lt;br class='autobr' /&gt;
de la police elle-m&#234;me : le fichier pk. Votre image est donc int&#233;gr&#233;e comme une police dans le&lt;br class='autobr' /&gt;
document (ce qui ne nous oblige donc pas de visionner un fichier ps car Le fichier dvi int&#233;grera votre image).&lt;/p&gt;
&lt;p&gt;Pour utiliser &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mfpic&lt;/code&gt;, je l'ai t&#233;l&#233;charg&#233; depuis Internet sur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ctan&lt;/code&gt;, j'ai cr&#233;&#233; un&lt;br class='autobr' /&gt;
r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mfpic&lt;/code&gt; dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/share/texmf/tex/latex&lt;/code&gt; o&#249; j'y ai plac&#233; les fichiers&lt;br class='autobr' /&gt;
sty et tex. J'ai ensuite copi&#233; le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;grafbase.mf&lt;/code&gt; dans le r&#233;pertoire&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/share/texmf/metafont/misc&lt;/code&gt; car ces fichiers sont n&#233;cessaires &#224; la compilation par&lt;br class='autobr' /&gt;
metafont.&lt;/p&gt;
&lt;p&gt;Notons que nous pouvons d&#233;finir &#224; l'instar de la variable d'environnement&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;TEXINPUTS&lt;/code&gt;, les variables &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;MFINPUTS&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;MPINPUTS&lt;/code&gt;. Elles permettent aux&lt;br class='autobr' /&gt;
compilateurs associ&#233;es de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metafont&lt;/code&gt; et de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metapost&lt;/code&gt; de trouver les fichiers pr&#233;c&#233;dement cit&#233;s dans les bons r&#233;pertoires.&lt;/p&gt;
&lt;p&gt;Pour finir, voici une session :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; premi&#232;re compilation LaTeX&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;bash-2.05$ latex essai_mfpic.tex This is TeX, Version 3.14159 (Web2C 7.3.1) (essai_mfpic.tex LaTeX2e &lt;2000/06/01&gt; Babel &lt;v3.7h&gt; and hyphenation patterns for american, french, nohyphenation, loa ded. (/usr/share/texmf/tex/latex/base/article.cls Document Class: article 2000/05/19 v1.4b Standard LaTeX document class (/usr/share/texmf/tex/latex/base/size10.clo)) (/usr/share/texmf/tex/latex/mfpic/mfpic.sty (/usr/share/texmf/tex/latex/mfpic/mfpic.tex)) No file essai_mfpic.aux. Underfull \hbox (badness 10000) in paragraph at lines 5--6 MFpic: No file essai_mfpic.tfm . MFpic: Don't forget to process essai_mfpic.mf! MFpic: (Apply metafont to essai_mfpic.mf, then gftopk to the resulting gf file. ) MFpic: Then reprocess this file (essai_mfpic). [1] (essai_mfpic.aux) ) (see the transcript file for additional information) Output written on essai_mfpic.dvi (1 page, 432 bytes). Transcript written on essai_mfpic.log.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; compilation metafont&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;bash-2.05$ mf essai_mfpic.mf This is METAFONT, Version 2.7182 (Web2C 7.3.1) (essai_mfpic.mf (/usr/share/texmf/metafont/misc/grafbase.mf MFpic version 0.5.0 beta, 2001/10/30 ) [1] ) Font metrics written on essai_mfpic.tfm. Output written on essai_mfpic.360gf (1 character, 1784 bytes). Transcript written on essai_mfpic.log.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; cr&#233;ation de la police (pour ceux qui s'&#233;tonne de la r&#233;solution employ&#233;e j'ai encore une vieille mais&lt;br class='autobr' /&gt;
tr&#232;s avantageuse Canon BJ-10ex... Bon, il est vrai qu'utiliser LaTeX avec une d&#233;finition aussi faible est&lt;br class='autobr' /&gt;
un crime de l&#232;se-majest&#233;).&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;bash-2.05$ gftopk essai_mfpic.360gf&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; deuxi&#232;me compilation LaTeX&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;bash-2.05$ latex essai_mfpic.tex This is TeX, Version 3.14159 (Web2C 7.3.1) (essai_mfpic.tex LaTeX2e &lt;2000/06/01&gt; Babel &lt;v3.7h&gt; and hyphenation patterns for american, french, nohyphenation, loa ded. (/usr/share/texmf/tex/latex/base/article.cls Document Class: article 2000/05/19 v1.4b Standard LaTeX document class (/usr/share/texmf/tex/latex/base/size10.clo)) (/usr/share/texmf/tex/latex/mfpic/mfpic.sty (/usr/share/texmf/tex/latex/mfpic/mfpic.tex)) (essai_mfpic.aux) Underfull \hbox (badness 10000) in paragraph at lines 5--6 MFpic: Don't forget to process essai_mfpic.mf! MFpic: (Apply metafont to essai_mfpic.mf, then gftopk to the resulting gf file. ) MFpic: Then reprocess this file (essai_mfpic). [1] (essai_mfpic.aux) ) (see the transcript file for additional information) Output written on essai_mfpic.dvi (1 page, 372 bytes). Transcript written on essai_mfpic.log.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; visualisation du binaire&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;bash-2.05$ xdvi essai_mfpic.dvi&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;OUF ! on pourra ais&#233;ment automatiser ces t&#226;ches pour faciliter l'utilisation de cette extension.&lt;br class='autobr' /&gt;
Maintenant regardons un peu sur les m&#234;mes exemples que pr&#233;c&#233;demment ce que produit l'extension.&lt;br class='autobr' /&gt;
Voici le document source pour les trois exemples pr&#233;c&#233;dents avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mfpic&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\documentclass{article} \usepackage{mfpic} \begin{document} \opengraphsfile{essai_mfpic} \mfpicunit=1cm \centering \fbox{ \begin{mfpic}[3][3]{-1.2}{1.2}{-1.2}{1.2} % le rep&#232;re \axes \xmarks{-1,1} \ymarks{-1,1} \tlabel[tl](0.03,-0.03){O} \tlabel[tc](-1,-0.03){$-1$}\tlabel[tc](1,-0.03){1} \tlabel[cl](0.03,-1){$-1$}\tlabel[cl](0.03,1){1} % le trac&#233; \parafcn{0,360,1}{(sind 2t,cosd 3t)} % la l&#233;gende \tlabel[cc](.3,-.7){Courbe de Lissajous% $\left\{\begin{array}{ll}x(t)=\sin(2t)\\y(t)=\cos(3t)\end{array}\right.$% } \end{mfpic} }\\[.5cm] \fbox{ \begin{mfpic}[.25][4]{-13}{13}{-.6}{1.3} % le rep&#232;re \axes \xmarks{-12,-9,-6,-3,0,3,6,9,12} \ymarks{-.5,.5,1} \tlabel[tl](0.5,-0.03){O} \tlabel[tc](-12,-0.03){$-12$}\tlabel[tc](12,-0.03){12} \tlabel[tc](-9,-0.03){$-9$}\tlabel[tc](9,-0.03){9} \tlabel[tc](-6,-0.03){$-6$}\tlabel[tc](6,-0.03){6} \tlabel[tc](-3,-0.03){$-3$}\tlabel[tc](3,-0.03){3} \tlabel[cl](0.5,-.5){$-0,5$}\tlabel[cl](0.5,1){1} \tlabel[cl](0.5,0,5){$0,5$} % le trac&#233; \function{-13,13,.13}{sind(x*180/3.14159)/x} % la l&#233;gende \tlabel[tl](-13,1.1){$\displaystyle x\longmapsto \frac{\sin x}{x}$} \end{mfpic} } \fbox{ \begin{mfpic}[3][3]{-1.2}{1.2}{-1.2}{1.2} % le rep&#232;re \axes \xmarks{-1,0,1} \ymarks{-1,1} \tlabel[tl](0.03,-0.03){O} \tlabel[tc](-1,-0.03){$-1$}\tlabel[tc](1,-0.03){1} \tlabel[cl](0.03,-1){$-1$}\tlabel[cl](0.03,1){1} % les trac&#233;s \dotted\function{-1,1,.1}{x} \pen{1bp}\function{-1,1,.1}{x**2} \pen{.5pt} \dashed\function{-1,1,.1}{x**3} \function{0,1,.1}{sqrt(x)} % la l&#233;gende \dotted\lines{(1.3,1),(1.5,1)}\tlabel[l](1.6,1){$x\longmapsto x$} \pen{1bp}\lines{(1.3,0.9),(1.5,0.9)}\tlabel[l](1.6,.9){$x\longmapsto x^2$} \pen{.5pt} \dashed\lines{(1.3,0.8),(1.5,0.8)}\tlabel[l](1.6,.8){$x\longmapsto x^3$} \lines{(1.3,0.7),(1.5,0.7)}\tlabel[l](1.6,.7){$x\longmapsto \sqrt{x}$} \end{mfpic} } \closegraphsfile \end{document}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class='spip_document_139 spip_document spip_documents spip_document_image spip_documents_left spip_document_left'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L255xH244/fig1_mfpic-e3f31.png?1759547682' width='255' height='244' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;div class='spip_document_140 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L227xH256/fig2_mfpic-b4048.png?1759547682' width='227' height='256' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;div class='spip_document_141 spip_document spip_documents spip_document_image spip_documents_right spip_document_right'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L332xH244/fig3_mfpic-d562f.png?1759547682' width='332' height='244' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;D&#232;s le d&#233;part, un fichier que j'ai nomm&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;essai_mfpic&lt;/code&gt; est ouvert en &#233;criture, c'est celui-ci&lt;br class='autobr' /&gt;
qui va contenir apr&#232;s la premi&#232;re compilation le code &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metafont&lt;/code&gt; &#224; compiler. Il est&lt;br class='autobr' /&gt;
naturellement ferm&#233; &#224; la fin du source LaTeX.&lt;br&gt;
On remarque l'absence cruelle de couleur, mais &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mfpic&lt;/code&gt; dispose d'une commande&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\usemetapost&lt;/code&gt; pour produire non pas du code &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metafont&lt;/code&gt; mais du code&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metapost&lt;/code&gt; qui sera donc &#224; compiler avec ce dernier et non plus &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metafont&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Bien entendu, on aura acc&#232;s &#224; plus de param&#232;tres et notamment &#224; la couleur, mais les figures produites ne&lt;br class='autobr' /&gt;
seront visualisables qu'avec un visualiseur acceptant le format PostScript.&lt;/p&gt;
&lt;p&gt;Le positionnement des &#233;tiquettes peut se faire &#224; l'aide de 2 param&#232;tres qui d&#233;finissent respectivement la&lt;br class='autobr' /&gt;
position verticale (b pour bottom (bas), c pour center (centr&#233;), l pour left (gauche) et r pour right&lt;br class='autobr' /&gt;
(droite)) et la position horizontale (d&#233;finie de la m&#234;me mani&#232;re).&lt;/p&gt;
&lt;p&gt;La commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;function&lt;/code&gt; prend trois param&#232;tres : l'abscisse de d&#233;part, l'abscisse d'arriv&#233;e et&lt;br class='autobr' /&gt;
le pas pour parcourir cet intervalle. Le reste est tr&#232;s compr&#233;hensible.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Mon impression&lt;/h2&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;PsTricks&lt;/code&gt; est vraiment un outil tr&#232;s puissant, jetez un coup d'oeil &#224; la documentation et vous&lt;br class='autobr' /&gt;
serez &#233;bloui par toutes ces figures et ces graphiques. La n&#233;cessit&#233; de devoir visualiser en PostScript&lt;br class='autobr' /&gt;
n'est pas tr&#232;s g&#234;nante pour moi car je ne visualise jamais mon dvi : j'emploie toujours la commande :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;dvips monfichier.dvi -o&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;pour finalement visualiser avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gv&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; L'extension &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mfpic&lt;/code&gt; est remarquable. Dessiner une courbe de fonction est d'une simplicit&#233;&lt;br class='autobr' /&gt;
in&#233;galable. En revanche, je d&#233;teste la complexit&#233; (certes relative) de la compilation. J'avoue pr&#233;f&#233;rer&lt;br class='autobr' /&gt;
tracer directement avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metapost&lt;/code&gt;. Ce n'est alors plus int&#233;gr&#233; dans le source LaTeX mais&lt;br class='autobr' /&gt;
plut&#244;t que d'apprendre des commandes pour construire un fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metafont&lt;/code&gt; ou&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metapost&lt;/code&gt; autant apprendre le langage lui-m&#234;me...&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Int&#233;gration hors code source&lt;/h2&gt;
&lt;p&gt;L'int&#233;gration hors code source se fait avec la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\includegraphics&lt;/code&gt; de l'extension&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;graphicx&lt;/code&gt;, par exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\includegraphics{monfichier.eps}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;metapost&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Je vous propose tout simplement de reprendre les exemples pr&#233;c&#233;dents en cr&#233;ant trois figures. Ici j'ai&lt;br class='autobr' /&gt;
utilis&#233; du code LaTeX pour mes &#233;tiquettes dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metapost&lt;/code&gt; alors que par d&#233;faut,&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metapost&lt;/code&gt; utilise TeX pour compiler... J'ai donc attribu&#233; la valeur latex &#224; la variable d'environnement &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;TEX&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;export TEX=latex&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ensuite dans mon code source &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;metapost&lt;/code&gt;, j'ai ins&#233;r&#233; au d&#233;but et &#224; la fin les d&#233;clarations&lt;br class='autobr' /&gt;
habituelles des sources latex pour que les &#233;tiquettes soient correctement compil&#233;es par LaTeX.&lt;/p&gt;
&lt;p&gt;Pour finir, les &#233;tiquettes utilisant LaTeX voit leur contenu (dans le source) encadr&#233; par les marqueurs&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;btex&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;etex&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;verbatimtex \documentclass{article} \begin{document} etex beginfig(1); path axe,taquet,courbe; u=3cm; % les axes axe=(-1.2u,0)--(1.2u,0); drawarrow axe; drawarrow axe rotated 90; % les marques for i=-1,1 : draw (i*u,-.5mm)--(i*u,.5mm); label.bot(decimal(i),(i*u,-1mm)); draw (-.5mm,i*u)--(.5mm,i*u); label.lft(decimal(i),(0,i*u)); endfor label.llft(&#034;O&#034;,(-.5mm,-.5mm)); % le calcul de la courbe k=0; for i=1 upto 200 : % on divise en 200 valeurs les valeurs de 0 &#224; 360 monangle:=(i-1)*360/199; x:=sind(2*monangle);y:=cosd(3*monangle); % si ce n'est pas le premier point on ajoute au chemin pr&#233;c&#233;dent if i=1: courbe=(x*u,y*u) else: courbe:=courbe--(x*u,y*u) fi; endfor % le trac&#233; de la courbe draw courbe withcolor red; % l'&#233;tiquette label(btex Courbe de Lissajous% $\left\{\begin{array}{ll}x(t)=\sin(2t)\\y(t)=\cos(3t)\end{array}\right.$% etex,(.3u,-.7u)); endfig; beginfig(2); path axe[],courbe; ux=.25cm;uy=4cm; % les axes axe0=(-13ux,0)--(13ux,0); axe1=(0,-.6uy)--(0,1.3uy); drawarrow axe0; drawarrow axe1; % les marques for i=-12 step 2 until 12 : draw (i*ux,-.5mm)--(i*ux,.5mm); if i&lt;&gt;0 : label.bot(decimal(i),(i*ux,-1mm)) else : label.llft(btex O etex,origin) fi; endfor for i=-0.5,0.5,1 : draw (-.5mm,i*uy)--(.5mm,i*uy); label.lft(decimal(i),(0,i*uy)); endfor % le calcul de la courbe for i=1 upto 200 : % on divise en 200 valeurs les valeurs de --13 &#224; 13 x:=-13+(i-1)*26/199; y:=sind(x*180/3.14159)/x; % si ce n'est pas le premier point on ajoute au chemin pr&#233;c&#233;dent if i=1: courbe=(x*ux,y*uy) else: courbe:=courbe--(x*ux,y*uy) fi; endfor % le trac&#233; de la courbe draw courbe withpen pencircle scaled .1mm; % l'&#233;tiquette label.lrt(btex $\displaystyle x\longmapsto {\sin x \over x}$ etex,(-13ux,1.3uy)); endfig; beginfig(3); path axe,taquet,courbe[],leg; u:=3cm; % les axes axe=(-1.2u,0)--(1.2u,0); drawarrow axe; drawarrow axe rotated 90; % les marques for i=-1,1 : draw (i*u,-.5mm)--(i*u,.5mm); label.bot(decimal(i),(i*u,-1mm)); draw (-.5mm,i*u)--(.5mm,i*u); label.lft(decimal(i),(0,i*u)); endfor label.llft(&#034;O&#034;,(-.5mm,-.5mm)); % le calcul des courbes for i=1 upto 200 : % on divise en 200 valeurs les valeurs de -1 &#224; 1 x:=-1+(i-1)*2/199; for j=1 upto 3 : y:=x**j; if i=1: courbe[j]=(x*u,y*u) else: courbe[j]:=courbe[j]--(x*u,y*u) fi; endfor; if i=101: courbe4=(x*u,sqrt(x)*u) fi; if i&gt;100: courbe4:=courbe4--(x*u,sqrt(x)*u) fi; endfor % le trac&#233; de la courbe draw courbe[1] dashed withdots; draw courbe[2] withpen pencircle scaled 1bp; draw courbe[3] dashed evenly; draw courbe[4] withcolor red; % la l&#233;gende leg=(1.3u,u)--(1.5u,u); label.rt(btex $x\longmapsto x$ etex,(1.6u,u)); draw leg dashed withdots; label.rt(btex $x\longmapsto x^2$ etex,(1.6u,.9u)); draw leg shifted (0,-.1u) withpen pencircle scaled 1bp;; label.rt(btex $x\longmapsto x^3$ etex,(1.6u,.8u)); draw leg shifted (0,-.2u) dashed evenly; label.rt(btex $x\longmapsto \sqrt x$ etex,(1.6u,.7u)); draw leg shifted (0,-.3u) withcolor red; endfig; verbatimtex \end{document} etex end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_142 spip_document spip_documents spip_document_image spip_documents_left spip_document_left'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L252xH246/fig1_mp-608ed.png?1759547682' width='252' height='246' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;div class='spip_document_143 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L222xH258/fig2_mp-837e6.png?1759547682' width='222' height='258' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;div class='spip_document_144 spip_document spip_documents spip_document_image spip_documents_right spip_document_right'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L334xH246/fig3_mp-5236d.png?1759547682' width='334' height='246' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;La grande diff&#233;rence avec les solutions pr&#233;c&#233;demment propos&#233;es est qu'ici, vous devez TOUT faire, au&lt;br class='autobr' /&gt;
risque de rebuter les adeptes de la facilit&#233;, mais l'avantage est de pouvoir ma&#238;triser beaucoup plus de&lt;br class='autobr' /&gt;
choses.&lt;/p&gt;
&lt;p&gt;On notera deux aspects int&#233;ressants dans le code :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; l'inclusion de code LaTeX dans les &#233;tiquettes (cf. remarque du d&#233;but) ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; l'utilisation d'un test syst&#233;matique pour &#233;tablir nos courbes. En effet, celles-ci sont d&#233;clar&#233;es comme&lt;br class='autobr' /&gt;
&#233;tant de type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;path&lt;/code&gt;, si nous essayons de faire sans, nous coderions tout simplement, quelque chose du genre :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;courbe:=courbe--(x*ux,y*uy);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Mais voil&#224; au premier appel la variable courbe n'a pas de valeur d&#233;finie. Donc pour&lt;br class='autobr' /&gt;
commencer la courbe, on teste &#224; l'aide d'un compteur s'il s'agit du premier point calcul&#233;,&lt;br class='autobr' /&gt;
auquel cas on attribue &#224; la variable courbe cette valeur de type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pair&lt;/code&gt;, le code devient donc :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;if i=1: courbe=(x*ux,y*uy) else: courbe:=courbe--(x*ux,y*uy) fi;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;o&#249; i est le compteur dans la boucle de calcul.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;gnuplot&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Connaissant fort mal gnuplot, je ne vous pr&#233;sente ici que quelques aspects bien simples de ce logiciel.&lt;/p&gt;
&lt;p&gt;gnuplot est un logiciel de trac&#233;s de courbes scientifiques. Il permet en mode interactif (&lt;i&gt;via&lt;/i&gt; la ligne de&lt;br class='autobr' /&gt;
commande) de d&#233;finir le style des courbes, mais aussi de pr&#233;ciser le type de sortie voulu : sortie&lt;br class='autobr' /&gt;
&#233;cran, sortie fichier au format PNG ou autre, sortie en code LaTeX (environnement picture), sortie pstricks&lt;br class='autobr' /&gt;
(environnement pspicture), etc.&lt;/p&gt;
&lt;p&gt;Le mode interactif est certes int&#233;ressant, mais on pr&#233;f&#233;rera sans doute le passage par un fichier. Par&lt;br class='autobr' /&gt;
exemple, j'ai constitu&#233;, pour la premi&#232;re courbe, un fichier de commandes gnuplot que j'ai appel&#233;&lt;br class='autobr' /&gt;
'figure1.gnu'. Pour &#233;valuer son contenu, je vais appeler la commande gnuplot puis &#224; l'invite interactive,&lt;br class='autobr' /&gt;
je vais saisir la commande :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;load 'figure1.gnu'&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour param&#233;trer la sortie, il faut changer la valeur de la variable &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;term&lt;/code&gt;. Par d&#233;faut celle-ci&lt;br class='autobr' /&gt;
est fix&#233;e &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;X11&lt;/code&gt;, c'est-&#224;-dire que les trac&#233;s se feront dans une fen&#234;tre de X11 que gnuplot&lt;br class='autobr' /&gt;
affichera. Pour g&#233;n&#233;rer une sortie diff&#233;rente, par exemple une sortie LaTeX, on &#233;crira :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;set term latex&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Dans ce cas, la sortie (en code LaTeX) se fera sur la sortie standard, donc sans doute la console&lt;br class='autobr' /&gt;
elle-m&#234;me. Pour diriger ce flux vers un fichier, il suffit de changer la valeur de la variable&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;outout&lt;/code&gt;, par exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;set output figure1.tex&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Voil&#224; l'ensemble des sorties possibles :&lt;/p&gt;
&lt;p&gt;aed512, aed767, aifm, bitgraph, cgm, corel, dumb, dxf,&lt;br class='autobr' /&gt;
eepic, emtex, epson-180dpi, epson-60dpi,&lt;br class='autobr' /&gt;
epson-lx800, fig, gif, gpic, hp2623a, hp2648, hp500c, hpdj,&lt;br class='autobr' /&gt;
hpgl, hpljii, hppj, imagen,&lt;br class='autobr' /&gt;
kc-tek40xx, km-tek40xx, latex, mf,&lt;br class='autobr' /&gt;
mif, mp, nec-cp6, okidata,t&lt;br class='autobr' /&gt;
pbm, pcl5, png, postscript,&lt;br class='autobr' /&gt;
pslatex, pstex, pstricks, qms,&lt;br class='autobr' /&gt;
regis, selanar, starc, table,&lt;br class='autobr' /&gt;
tandy-60dpi, tek410x, texdraw, tgif,&lt;br class='autobr' /&gt;
tkcanvas, tpic, vttek, x11,&lt;br class='autobr' /&gt;
xlib.&lt;/p&gt;
&lt;p&gt;On y trouvera notamment emtex, latex, mf&lt;br class='autobr' /&gt;
mp, pslatex, pstex, pstricks, tex et texdraw.&lt;/p&gt;
&lt;p&gt;Pour produire les images de cet article, j'ai demand&#233; une sortie png. Bien entendu, dans les exemples, il&lt;br class='autobr' /&gt;
s'agit de les inclure dans un document LaTeX. J'ai donc demand&#233; une sortie latex (fichier qui porte l'extension .tex). Il suffira par la suite d'int&#233;grer le&lt;br class='autobr' /&gt;
fichier dans le code source LaTeX en utilisant :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\input figure1.tex&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; exemple 1&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;set term latex set output 'figure1.tex' set parametric set noborder set zeroaxis set xtics axis 1 set ytics axis 1 set xrange [-1.2:1.2] set yrange [-1.2:1.2] set samples 200 plot [0:2*pi] sin(2*t),cos(3*t) notitle&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_145 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L432xH257/fig1_gnuplot-5679a.png?1760077242' width='432' height='257' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; exemple 2&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;set term latex set output 'figure2.tex' set noborder set zeroaxis set xtics axis 3 set ytics axis .5 set xrange [-13:13] set yrange [-.6:1.3] set samples 200 plot sin(x)/x notitle lw 1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_146 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L432xH257/fig2_gnuplot-1bcd8.png?1760077242' width='432' height='257' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; exemple 3&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;set term latex set output 'figure3.tex' set noborder set zeroaxis set xtics axis 1 set ytics axis 1 set xrange [-1.2:1.2] set yrange [-1.2:1.2] set samples 200 plot [-1:1] x notitle, x**2 notitle,x**3 notitle,sqrt(x) notitle&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_147 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L432xH257/fig3_gnuplot-16d40.png?1760077242' width='432' height='257' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Je ne d&#233;veloppe pas les possibilit&#233;s d'int&#233;gration de code LaTeX dans les images. Je ne les conna&#238;s pas&lt;br class='autobr' /&gt;
mais je sais qu'elles existent.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les autres&lt;/h2&gt;
&lt;p&gt;Gnuplot poss&#232;de aussi des capacit&#233;s de trac&#233;s de surfaces et courbes en dimension 3. Pour les allergiques &#224; gnuplot, il existe quelques front-ends sur Internet.&lt;/p&gt;
&lt;p&gt;Pour finir, on trouvera sur Internet nombre de traceurs de courbes qui exportent en EPS.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Netographie&lt;/h2&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://zandtwerk.insead.fr/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;pstricks&lt;/a&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://comp.uark.edu/~luecking/tex/mfpic.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;mfpic&lt;/a&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://cm.bell-labs.com/who/hobby/MetaPost.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;metapost&lt;/a&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.gnuplot.info&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;gnuplot&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Cr&#233;ation de mng (images anim&#233;es) avec metapost</title>
		<link>https://clx.asso.fr/spip/?Creation-de-mng-images-animees-avec-metapost</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?Creation-de-mng-images-animees-avec-metapost</guid>
		<dc:date>2002-12-09T21:02:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>David Cobac</dc:creator>


		<dc:subject>Publication</dc:subject>

		<description>&lt;p&gt;Dans le programme de seconde, on demande aux &#233;l&#218;ves d'afficher la courbe d'une fonction, par exemple la fonction sinus.&lt;br class='autobr' /&gt;
Je vous propose donc d'&#233;laborer une animation o&#249; on voit la courbe de la fonction se&lt;br class='autobr' /&gt;
construire en m&#234;me temps que le d&#233;placement d'un point sur un cercle trigonom&#233;trique le tout sur une&lt;br class='autobr' /&gt;
p&#233;riode, c'est-&#224;-dire 2*pi.&lt;/p&gt;

-
&lt;a href="https://clx.asso.fr/spip/?-Transition-vers-le-Libre-" rel="directory"&gt;Transition vers le Libre...&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-Publication-+" rel="tag"&gt;Publication&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Dans le programme de seconde, on demande aux &#233;l&#218;ves d'afficher la courbe de la fonction sinus. Avec metapost et ImageMagik, rien de plus facile...&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Petits rappels sur metapost&lt;/h2&gt;
&lt;p&gt;Nous avions d&#233;couvert comment produire des figures g&#233;om&#233;triques dans l'article &#034;&lt;a href='https://clx.asso.fr/spip/?Une-approche-de-metapost' class=&#034;spip_in&#034;&gt;Une approche de metapost&lt;/a&gt;&#034;, nous avions&lt;br class='autobr' /&gt;
vu aussi qu'un fichier source pouvait contenir plusieurs d&#233;finitions de figures et donc engendrer&lt;br class='autobr' /&gt;
plusieurs fichiers d'images au format PostScript.&lt;/p&gt;
&lt;p&gt;On se souvient aussi que les variables sont par d&#233;faut globales et donc se conservent d'une image &#224;&lt;br class='autobr' /&gt;
l'autre (&#224; moins qu'on invoque les commandes de d&#233;clarations de type sur elles).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Objectif&lt;/h2&gt;
&lt;p&gt;Dans le programme de seconde, on demande aux &#233;l&#232;ves d'afficher la courbe de la fonction sinus&lt;br class='autobr' /&gt;
(par exemple). Je vous propose donc d'&#233;laborer une animation o&#249; on voit la courbe de la fonction se&lt;br class='autobr' /&gt;
dessiner en m&#234;me temps que le d&#233;placement d'un point sur un cercle trigonom&#233;trique le tout sur une&lt;br class='autobr' /&gt;
p&#233;riode, c'est-&#224;-dire 2*pi.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Code comment&#233; metapost&lt;/h2&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;% metapost travaille en degr&#233;s donc nous d&#233;finissons % une petite fonction de conversion en radian vardef conversion (expr monangle) = monangle*3.14159265359/180 enddef; beginfig(1); pair O,O'; path cercle,axe[]; picture FigureInit; rayon=2cm; O=origin; % la figure de gauche : le cercle trigo cercle=fullcircle scaled (2*rayon); axe0=(0,-1.1*rayon)--(0,1.1*rayon); axe1=(-1.1*rayon,0)--(1.1*rayon,0); pickup pencircle scaled .5bp; draw cercle; for i=0,1 : drawarrow axe[i]; endfor % la figure de droite : le rep&#232;re pour tracer la fonction O'=(rayon+1cm,0); axe2=axe0 shifted O'; axe3=O'shifted (-.5cm,0)--O' shifted (6.5*rayon,0); for i=2,3 : drawarrow axe[i]; endfor % on enregistre cette figure FigureInit=currentpicture; endfig; % D&#233;claration de la courbe commune &#224; toutes les figures. path courbeSinus; % Celle-ci commence &#224; l'origine du rep&#232;re courbeSinus=O'; % Nombre de figures &#224; cr&#233;er % Plus le nombre est grand, plus grande sera la pr&#233;cision % de la courbe. jmax=20; % Boucle des figures for j=1 upto jmax : beginfig(0+j); pair Mcercle,Maxe,Mcourbe; % je retrace la figure 1 (le fond) draw FigureInit; % le calcul de l'angle en degr&#233;s % 360/(jmax-1) d&#233;signe l'angle de rotation d'incr&#233;ment % (on retranche 1 pour d&#233;marrer l'angle &#224; 0) monangle:=(360/(jmax-1))*(j-1); % pour mettre le point sur la courbe, son abscisse % doit &#234;tre en radian (c'est plus simple vu que j'ai l'unit&#233; % rayon d&#233;j&#224; toute pr&#234;te) % Le point Maxe est le projet&#233; orthogonal de Mcercle sur l'axe % des abscisses dans le rep&#232;re du cercle. Mcercle=(cosd(monangle)*rayon,sind(monangle)*rayon); Maxe=(cosd(monangle)*rayon,0); Mcourbe=(conversion(monangle)*rayon,sind(monangle)*rayon) shifted O'; draw Mcercle--Maxe; draw Mcercle withpen pencircle scaled 4 bp withcolor red; % La courbe s'allonge proportionnellment &#224; j courbeSinus:=courbeSinus--Mcourbe; draw courbeSinus withcolor .5red; draw Mcourbe withpen pencircle scaled 4 bp withcolor red; endfig; endfor end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous remarquerez qu'ici nous &#233;crasons la figure 1 d&#232;s &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;j=1&lt;/code&gt;, cela nous permet&lt;br class='autobr' /&gt;
d'&#233;viter l'apparition de figures parasites &#224; &#233;liminer apr&#232;s compilation par metapost ; la figure 1 ne&lt;br class='autobr' /&gt;
servant qu'&#224; initialiser la variable &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;FigureInit&lt;/code&gt;, notre fond.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Production de l'animation&lt;/h2&gt;
&lt;p&gt;La compilation du code nous fournit donc 20 fichiers images ; mon fichier source s'appelant &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sinus.mp&lt;/code&gt;, la compilation a fourni : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sinus.1&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sinus.2&lt;/code&gt;, etc. jusqu'&#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sinus.20&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour convertir ces images en une seule image anim&#233;e, nous allons utiliser le logiciel &lt;strong&gt;ImageMagick&lt;/strong&gt; et sa commande magique (&#233;videmment) &lt;strong&gt;convert&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;La lecture de la page de manuel de cette commande vaut le d&#233;tour, le nombre de formats support&#233;s est incroyable.&lt;/p&gt;
&lt;p&gt;La commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;convert&lt;/code&gt; appliqu&#233;e directement aux fichiers images metapost fonctionne (n'oublions pas que les formats d'images sont (quasiment) des fichiers PostScript) :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;convert -delay 10 Sinus.* Sinus.mng&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;H&#233;las, l'ordre des figures n'est pas respect&#233; !!&lt;/p&gt;
&lt;p&gt;On a donc recours soit &#224; la commande exhaustive :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bash-2.05$ convert -delay 10 Sinus.1 Sinus.2 Sinus.3 Sinus.4 Sinus.5 Sinus.6 Sinus.7 Sinus.8 Sinus.9 Sinus.10 Sinus.11 Sinus.12 Sinus.13 Sinus.14 Sinus.15 Sinus.16 Sinus.17 Sinus.18 Sinus.19 Sinus.20 Sinus.mng&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;soit au renommage des fichiers &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sinus.1&lt;/code&gt; jusqu'&#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sinus.9&lt;/code&gt; en &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sinus.01&lt;/code&gt; &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Sinus.09&lt;/code&gt; (merci Fred) ce qui nous assurera le respect de l'ordre des figures gr&#226;ce &#224; la commande :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;convert -delay 10 Sinus.* Sinus.mng&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Puis on visualise le r&#233;sultat avec la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;animate&lt;/code&gt; d'ImageMagick :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bash-2.05$ animate Sinus.mng&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;ou dans un navigateur Internet supportant les fichiers mng, comme &lt;a href=&#034;http://clx.anet.fr/spip/breve.php3?id_breve=99&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Mozilla&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#034;spip_document_135 spip_document spip_documents spip_document_video spip_documents_center spip_document_center&#034;&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;div class=&#034;video-intrinsic-wrapper&#034; style='height:0;width:517px;max-width:100%;padding-bottom:24.37%;position:relative;'&gt; &lt;div class=&#034;video-wrapper&#034; style=&#034;position: absolute;top:0;left:0;width:100%;height:100%;&#034;&gt; &lt;video class=&#034;mejs mejs-135&#034; data-id=&#034;b29b2566dd8a2a5c808b5131d8c40d6d&#034; data-mejsoptions='{&#034;iconSprite&#034;: &#034;plugins-dist/medias/lib/mejs/mejs-controls.svg&#034;,&#034;alwaysShowControls&#034;: true,&#034;pluginPath&#034;:&#034;plugins-dist/medias/lib/mejs/&#034;,&#034;loop&#034;:false,&#034;videoWidth&#034;:&#034;100%&#034;,&#034;videoHeight&#034;:&#034;100%&#034;}' width=&#034;100%&#034; height=&#034;100%&#034; controls=&#034;controls&#034; preload=&#034;none&#034; &gt; &lt;source type=&#034;video/x-mng&#034; src=&#034;IMG/mng/sinus.mng&#034; /&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L64xH64/mng-8a250-a8d11.svg?1773232886' width='64' height='64' alt='Impossible de lire la video' /&gt; &lt;/video&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#034;base64javascript21644609269f5b9ab92cdf6.40684774&#034; title=&#034;PHNjcmlwdD4gdmFyIG1lanNwYXRoPSdwbHVnaW5zLWRpc3QvbWVkaWFzL2xpYi9tZWpzL21lZGlhZWxlbWVudC1hbmQtcGxheWVyLm1pbi5qcz8xNzczMjMyNDU1JyxtZWpzY3NzPSdwbHVnaW5zLWRpc3QvbWVkaWFzL2xpYi9tZWpzL21lZGlhZWxlbWVudHBsYXllci5taW4uY3NzPzE3NzMyMzI0NTUnOwp2YXIgbWVqc2xvYWRlcjsKKGZ1bmN0aW9uKCl7dmFyIGE9bWVqc2xvYWRlcjsidW5kZWZpbmVkIj09dHlwZW9mIGEmJihtZWpzbG9hZGVyPWE9e2dzOm51bGwscGx1Zzp7fSxjc3M6e30saW5pdDpudWxsLGM6MCxjc3Nsb2FkOm51bGx9KTthLmluaXR8fChhLmNzc2xvYWQ9ZnVuY3Rpb24oYyl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLmNzc1tjXSl7YS5jc3NbY109ITA7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO2IuaHJlZj1jO2IucmVsPSJzdHlsZXNoZWV0IjtiLnR5cGU9InRleHQvY3NzIjtkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGIpfX0sYS5pbml0PWZ1bmN0aW9uKCl7ITA9PT1hLmdzJiZmdW5jdGlvbihjKXtqUXVlcnkoImF1ZGlvLm1lanMsdmlkZW8ubWVqcyIpLm5vdCgiLmRvbmUsLm1lanNfX3BsYXllciIpLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7dmFyIGU9ITAsaDtmb3IoaCBpbiBkLmNzcylhLmNzc2xvYWQoZC5jc3NbaF0pO2Zvcih2YXIgZiBpbiBkLnBsdWdpbnMpInVuZGVmaW5lZCI9PQp0eXBlb2YgYS5wbHVnW2ZdPyhlPSExLGEucGx1Z1tmXT0hMSxqUXVlcnkuZ2V0U2NyaXB0KGQucGx1Z2luc1tmXSxmdW5jdGlvbigpe2EucGx1Z1tmXT0hMDtiKCl9KSk6MD09YS5wbHVnW2ZdJiYoZT0hMSk7ZSYmalF1ZXJ5KCIjIitjKS5tZWRpYWVsZW1lbnRwbGF5ZXIoalF1ZXJ5LmV4dGVuZChkLm9wdGlvbnMse3N1Y2Nlc3M6ZnVuY3Rpb24oYSxjKXtmdW5jdGlvbiBiKCl7dmFyIGI9alF1ZXJ5KGEpLmNsb3Nlc3QoIi5tZWpzX19pbm5lciIpO2EucGF1c2VkPyhiLmFkZENsYXNzKCJwYXVzaW5nIiksc2V0VGltZW91dChmdW5jdGlvbigpe2IuZmlsdGVyKCIucGF1c2luZyIpLnJlbW92ZUNsYXNzKCJwbGF5aW5nIikucmVtb3ZlQ2xhc3MoInBhdXNpbmciKS5hZGRDbGFzcygicGF1c2VkIil9LDEwMCkpOmIucmVtb3ZlQ2xhc3MoInBhdXNlZCIpLnJlbW92ZUNsYXNzKCJwYXVzaW5nIikuYWRkQ2xhc3MoInBsYXlpbmciKX1iKCk7YS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IixiLCExKTsKYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5aW5nIixiLCExKTthLmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlIixiLCExKTthLmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlZCIsYiwhMSk7Zy5hdHRyKCJhdXRvcGxheSIpJiZhLnBsYXkoKX19KSl9dmFyIGc9alF1ZXJ5KHRoaXMpLmFkZENsYXNzKCJkb25lIiksYzsoYz1nLmF0dHIoImlkIikpfHwoYz0ibWVqcy0iK2cuYXR0cigiZGF0YS1pZCIpKyItIithLmMrKyxnLmF0dHIoImlkIixjKSk7dmFyIGQ9e29wdGlvbnM6e30scGx1Z2luczp7fSxjc3M6W119LGUsaDtmb3IoZSBpbiBkKWlmKGg9Zy5hdHRyKCJkYXRhLW1lanMiK2UpKWRbZV09alF1ZXJ5LnBhcnNlSlNPTihoKTtiKCl9KX0oalF1ZXJ5KX0pO2EuZ3N8fCgidW5kZWZpbmVkIiE9PXR5cGVvZiBtZWpzY3NzJiZhLmNzc2xvYWQobWVqc2NzcyksYS5ncz1qUXVlcnkuZ2V0U2NyaXB0KG1lanNwYXRoLGZ1bmN0aW9uKCl7YS5ncz0hMDthLmluaXQoKTtqUXVlcnkoYS5pbml0KTtvbkFqYXhMb2FkKGEuaW5pdCl9KSl9KSgpOzwvc2NyaXB0Pg==&#034;&gt;&lt;/div&gt; &lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;netographie&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://www.imagemagick.org/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.imagemagick.org/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Une approche de metapost</title>
		<link>https://clx.asso.fr/spip/?Une-approche-de-metapost</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?Une-approche-de-metapost</guid>
		<dc:date>2002-12-06T14:40:28Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>David Cobac</dc:creator>


		<dc:subject>Publication</dc:subject>
		<dc:subject>LaTeX</dc:subject>

		<description>&lt;p&gt;LaTeX et metapost, le couple ultime pour obtenir des documents agr&#233;ment&#233;s de superbes graphiques.&lt;/p&gt;

-
&lt;a href="https://clx.asso.fr/spip/?-Transition-vers-le-Libre-" rel="directory"&gt;Transition vers le Libre...&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-Publication-+" rel="tag"&gt;Publication&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-LaTeX-+" rel="tag"&gt;LaTeX&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L149xH150/figure2-a3d42.png?1759547583' alt='' class='spip_logo spip_logo_right' width='149' height='150' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Avec metapost, ins&#233;rez des courbes et des graphiques dans vos documents cr&#233;&#233;s avec LaTex. Explications.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;A qui s'adresse metapost ?&lt;/h2&gt;
&lt;p&gt;A l'heure o&#249; les logiciels de g&#233;om&#233;trie dynamique sont pleinement exploit&#233;es, en classe, par les &#233;l&#232;ves, et o&#249; bon nombre de documents utilis&#233;s par les professeurs sont r&#233;dig&#233;s avec ces logiciels dits &#034;RIP&#034; (Reconnu&lt;br class='autobr' /&gt;
d'Int&#233;r&#234;t P&#233;dagogique), il est naturel de se poser la question. Metapost est un logiciel de conception de&lt;br class='autobr' /&gt;
dessins et est donc, &#224; ce titre, inutilisable avec des &#233;l&#232;ves car non visuel.&lt;/p&gt;
&lt;p&gt;Metapost est un langage que j'appellerai de &#034;description g&#233;om&#233;trique&#034; issu du langage metafont. Ce dernier sert&lt;br class='autobr' /&gt;
de support &#224; la cr&#233;ation de polices utilisables par (La)TeX. Il en reprend la plupart des primitives et&lt;br class='autobr' /&gt;
en inclut de nouvelles. De ce fait, metapost est naturellement li&#233; &#224; (La)TeX et donc assure une int&#233;gration&lt;br class='autobr' /&gt;
parfaite dans cet environnement de travail.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Un fichier, plusieurs images&lt;/h2&gt;
&lt;p&gt;Dans un fichier source metapost, on peut d&#233;finir plusieurs figures. Voici la structure du contenu d'un fichier&lt;br class='autobr' /&gt;
source :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;beginfig(1); ... ... endfig; beginfig(2); ... ... endfig; end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En appelant &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;essaidocclx.mp&lt;/code&gt; ce fichier et en le compilant avec la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mpost essaidocclx.mp&lt;/code&gt;, on obtiendra 2 fichiers : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;essaidocclx.1&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;essaidocclx.2&lt;/code&gt; que l'on pourra simplement inclure dans un&lt;br class='autobr' /&gt;
document LaTeX en utilisant par exemple le package &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;graphicx&lt;/code&gt; :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\includegraphics{essaidocclx.1}&lt;/code&gt;&lt;br&gt;
La lecture des premi&#232;res lignes du fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;essaidocclx.1&lt;/code&gt; dans un &#233;diteur nous apprend que&lt;br class='autobr' /&gt;
le fichier produit est au format PostScript :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;%!PS %%BoundingBox: -11 -55 203 138 %%Creator: MetaPost&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Types en metapost&lt;/h2&gt;
&lt;p&gt;Plusieurs types de donn&#233;es sont d&#233;finissables et manipulables avec metapost. Toute variable doit &#234;tre d&#233;clar&#233;e avec son type. Une variable non d&#233;clar&#233;e sera consid&#233;r&#233;e comme du type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;numeric&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Les principaux types sont :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;numeric&lt;/code&gt; : variable num&#233;rique sign&#233;e de -4096 (aussi appel&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-infinity&lt;/code&gt;) &#224;&lt;br class='autobr' /&gt; 4096 (appel&#233;e &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;+infinity&lt;/code&gt;) ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pair&lt;/code&gt; : couple de valeurs num&#233;riques d&#233;finissant un point ou un vecteur, ils seront&lt;br class='autobr' /&gt; manipul&#233;s comme des affixes (ce qui rend les choses tr&#232;s pratiques) ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;path&lt;/code&gt; : chemin qui pourra &#234;tre une droite, un cercle ou plus g&#233;n&#233;ralement une courbe.&lt;br&gt;
D'autres types existent, nous en rencontreront au fur et &#224; mesure de notre besoin.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;La g&#233;om&#233;trie des transformations&lt;/h2&gt;
&lt;p&gt;Qui dit g&#233;om&#233;trie dit transformations g&#233;om&#233;triques, et sur ce terrain metapost est imbattable.&lt;br class='autobr' /&gt;
Il permet tout simplement la d&#233;finition de toutes les transformations affines !&lt;br&gt;
Certaines sont d&#233;j&#224; pr&#233;d&#233;finies comme op&#233;rateurs binaires telles que :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;shifted&lt;/code&gt; : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(x,y) shifted (a,b)&lt;/code&gt; sera la d&#233;finition du translat&#233; de vecteur&lt;br class='autobr' /&gt;
de coordonn&#233;es (a,b) du point (x,y). Bien s&#251;r cet op&#233;rateur pourra s'appliquer sur un objet de type path ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rotated&lt;/code&gt; : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(x,y) rotated 35&lt;/code&gt; sera l'image par la rotation d'angle de mesure 35&lt;br class='autobr' /&gt;
degr&#233;s du point de coordonn&#233;es (x,y), l&#224; encore cette transformation pourra s'appliquer &#224; d'autres types.&lt;/p&gt;
&lt;p&gt;De mani&#232;re g&#233;n&#233;rale, metapost introduit un type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;transform&lt;/code&gt; qui permet de d&#233;finir les&lt;br class='autobr' /&gt;
composantes de la matrice de transformation.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Quelques petites choses avant de commencer&lt;/h2&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Metapost permet de placer des points sur une droite d&#233;finie par deux points avec une notation de&lt;br class='autobr' /&gt;
coordonn&#233;es barycentriques ; par exemple, la notation &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.5[A,B]&lt;/code&gt;, o&#249; A et B sont des objets de&lt;br class='autobr' /&gt;
type pair, d&#233;signe le milieu du segment [AB], la notation &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.7[A,B]&lt;/code&gt; d&#233;signe le point M&lt;br class='autobr' /&gt;
v&#233;rifiant vec(AM)=0,7*vec(AB) ou encore : M=(1-0,7)*A+0,7*B affixement parlant.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Certains objets de type pair sont pr&#233;d&#233;finis, ainsi &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;z0, z1, z2&lt;/code&gt;, etc. d&#233;signent des pairs&lt;br class='autobr' /&gt;
dont les coordonn&#233;es sont eux-m&#234;mes pr&#233;d&#233;finies &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;x0, x1, x2&lt;/code&gt;, etc. et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;y0, y1, y2&lt;/code&gt;, etc.&lt;br class='autobr' /&gt;
Cela permet, entre autres, d'&#233;viter d'&#234;tre oblig&#233; de d&#233;finir des objets de ce type.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; L'instruction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;draw&lt;/code&gt; dessine le chemin qu'on lui donne en argument.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Une droite entre deux objets de type pair A et B est d&#233;finie par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;A--B&lt;/code&gt;, le symbole&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;--&lt;/code&gt; indique simplement que l'on va tracer une ligne droite entre les deux points.Pour tracer un&lt;br class='autobr' /&gt;
triangle ABC, on utilisera donc &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;draw A--B--C--A&lt;/code&gt; ou encore &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;draw A--B--C--cycle&lt;/code&gt;&lt;br class='autobr' /&gt;
qui permet de fermer un chemin existant.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Pour tracer de mani&#232;re courbe, on utilisera &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;..&lt;/code&gt; &#224; la place de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;--&lt;/code&gt;, bien s&#251;r il existe une infinit&#233; de mani&#232;res de tracer une courbe ferm&#233;e passant par trois points, par exemple,&lt;br class='autobr' /&gt;
metapost fait donc un choix par d&#233;faut, on peut le forcer &#224; dessiner un chemin particulier mais ceci d&#233;passe largement le&lt;br class='autobr' /&gt;
cadre de notre article.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Metapost sait travailler avec des inconnues et r&#233;soudre des syst&#232;mes d'&#233;quations lin&#233;aires (h&#233; oui, et&lt;br class='autobr' /&gt;
rien que pour cela c'est g&#233;nial !).
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Le mot-cl&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;whatever&lt;/code&gt; remplace n'importe quelle valeur num&#233;rique non d&#233;finie et dont la&lt;br class='autobr' /&gt;
valeur ne nous int&#233;resse pas (cf. exemple 1).
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Le mot-cl&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;origin&lt;/code&gt; d&#233;signe l'objet pair de coordonn&#233;es (0,0).
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Comme tout langage, metapost permet de construire des boucles, de comparer des valeurs avec des op&#233;rateurs de test, d'&#233;laborer des fonctions, etc. (cf. exemples).
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Une instruction en metapost se conclut par un point-virgule.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; A l'instar de LaTeX, le symbole % est utilis&#233;e pour les commentaires.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;3 exemples comment&#233;s&lt;/h2&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;u&gt;exemple 1 :&lt;/u&gt; la droite d'Euler&lt;/p&gt;
&lt;p&gt;Figure classique de g&#233;om&#233;trie, on va tracer successivement le centre de gravit&#233; G, l'orthocentre H et le&lt;br class='autobr' /&gt;
centre du cercle circonscrit O d'un triangle ABC.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;beginfig(1); pair A,B,C,O,G,H; u=1cm; A=origin;B=(5u,0);C=(2u,3.5u); draw A--B--C--cycle; % d&#233;finition de O (O-0.5[A,B]) rotated 90=whatever*(A-B); (O-0.5[A,C]) rotated 90=whatever*(A-C); draw O; % d&#233;finition de G G=2/3[A,0.5[B,C]]; draw G; % d&#233;finition de H (H-A) rotated 90=whatever*(B-C); (H-B) rotated 90=whatever*(A-C); draw H; endfig;7 end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous d&#233;finissons les coordonn&#233;es en centim&#232;tres des sommets du triangle, voyez d'ailleurs l'utilisation&lt;br class='autobr' /&gt;
d'une variable num&#233;rique &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;u&lt;/code&gt; (car non d&#233;clar&#233;e au pr&#233;alable) comme unit&#233; de mesure.&lt;br&gt;
Si nous regardons la d&#233;finition de O, elle se fait de mani&#232;re vectorielle, nous indiquons ici que le&lt;br class='autobr' /&gt;
vecteur vec(OI) (o&#249; I d&#233;signerait le milieu de [AB]) est orthogonal au vecteur vec(AB). Bien s&#251;r, cette&lt;br class='autobr' /&gt;
seule d&#233;finition de O ne suffit pas et nous devons encore indiquer une autre orthogonalit&#233; pour&lt;br class='autobr' /&gt;
d&#233;finitivement conna&#238;tre O.&lt;/p&gt;
&lt;div class='spip_document_108 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L204xH149/figure1-205a1.png?1759555697' width='204' height='149' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;u&gt;exemple 2 :&lt;/u&gt; carr&#233; tournant du document d'accompagnement du programme de la classe de Premi&#232;re S page 47&lt;/p&gt;
&lt;p&gt;On part d'un carr&#233; de 10 cm de c&#244;t&#233;. Sur chaque c&#244;t&#233;, en tournant dans le m&#234;me sens, on place un point&lt;br class='autobr' /&gt;
situ&#233; &#224; une distance de 1 cm de chaque sommet du carr&#233;. Et on it&#233;re.&lt;/p&gt;
&lt;p&gt;Nous allons effectuer 10 it&#233;rations.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;beginfig(1); pair A,B,C,D,tmp; u=1cm;	NbIter=10; A=origin;B=(10u,0);C=(10u,-10u);D=(0,-10u); draw A--B--C--D--cycle; for i=1 upto NbIter : tmp:=A; A:=A+u*(B-A)/abs(B-A); B:=B+u*(C-B)/abs(C-B); C:=C+u*(D-C)/abs(D-C); D:=D+u*(tmp-D)/abs(tmp-D); draw A--B--C--D--cycle; endfor; endfig; end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Remarquons la forme particuli&#232;re de la boucle &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;for&lt;/code&gt; qui avec cette syntaxe impose un incr&#233;ment de 1.&lt;br&gt;
On remarquera aussi que la d&#233;finition d'une variable se fait avec le signe d'&#233;galit&#233; mais sa red&#233;finition ou sa r&#233;affectation se fait avec le symbole &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:=&lt;/code&gt;.&lt;br&gt;
La fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;abs&lt;/code&gt; s'applique aussi bien &#224; des objets de type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;numeric&lt;/code&gt; qu'&#224; des&lt;br class='autobr' /&gt;
objets de type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pair&lt;/code&gt; et d&#233;finit... Je vous laisse deviner.&lt;/p&gt;
&lt;p&gt;Mais metapost nous offre la fonction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;unitvector&lt;/code&gt; ainsi, on pourrait simplifier nos calculs&lt;br class='autobr' /&gt;
en rempla&#231;ant : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;A:=A+u*(B-A)/abs(B-A);&lt;/code&gt; par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;A:=A+u*unitvector(B-A);&lt;/code&gt;.&lt;/p&gt;
&lt;div class='spip_document_110 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L396xH399/figure2-02bd9.png?1759555697' width='396' height='399' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;u&gt;exemple 3 :&lt;/u&gt; Trac&#233; sur [0 ;4] de la fonction x|-&gt;6x^2-x^3&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;beginfig(1); path courbeA,courbeB; u=1cm; % trac&#233; des axes drawarrow (-.5u,0)--(6.5u,0); drawarrow (0,-.5u)--(0,6.5u); % les &#233;tiquettes sur les axes for i=0 step 2 until 6 : dotlabel.bot(decimal(i),(i*u,0)); dotlabel.lft(decimal(i*6),(0,i*u)); endfor; % construction de 2 chemins courbeA = courbeB = origin; for i=0 upto 12 : j:=i/2; v:=(6*(j**2)-(j**3))/6; courbeA:=courbeA--(j*u,v*u); courbeB:=courbeB..(j*u,v*u); endfor draw courbeA; draw courbeB withcolor 7red; endfig; end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Dans cet exemple, j'ai trac&#233; deux courbes qui passent par les m&#234;mes points. L'une est trac&#233;e &#224; l'aide de segments de droite, l'autre par des segments de courbes (celle en rouge). Remarquons ici la m&#233;diocrit&#233; de la courbe&lt;br class='autobr' /&gt;
rouge qui ne rend pas vraiment compte de la r&#233;alit&#233;, en effet les trac&#233;s de metapost sont faits par des courbes de&lt;br class='autobr' /&gt;
B&#233;zier dont il choisit lui-m&#234;me les points de contr&#244;le (entre deux points r&#233;els de la courbe, deux autres points&lt;br class='autobr' /&gt;
ont &#233;t&#233; choisis par metapost). Les courbes de B&#233;zier ne sont pas manifestement toujours les meilleures&lt;br class='autobr' /&gt;
approximations polyn&#244;miales (cf. polyn&#244;mes de Bernstein). On pr&#233;f&#233;rera augmenter le nombre de points et&lt;br class='autobr' /&gt;
tracer de petits segments (finalement comme la calculatrice !).&lt;/p&gt;
&lt;p&gt;L'instruction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;dotlabel&lt;/code&gt; permet de dessiner un point et d'y mettre une &#233;tiquette (ici d&#233;pendant&lt;br class='autobr' /&gt;
de i). Attention l'instruction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;dotlabel.bot(i,(i*u,0))&lt;/code&gt; aurait mis la lettre i partout !!&lt;/p&gt;
&lt;p&gt;On remarquera le trac&#233; des axes avec une variante de l'instruction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;draw&lt;/code&gt; et l'utilisation d'un&lt;br class='autobr' /&gt;
type non rencontr&#233; jusqu'&#224; pr&#233;sent : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;color&lt;/code&gt;.&lt;/p&gt;
&lt;div class='spip_document_112 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L281xH279/figure3-a0a44.png?1759555697' width='281' height='279' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Macros&lt;/h2&gt;
&lt;p&gt;metapost autorise la cr&#233;ation de macro-commandes, et &#224; l'image de LaTeX permet de les r&#233;unir dans un fichier s&#233;par&#233;e et d'en faire appel avec la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;input&lt;/code&gt; au d&#233;but du fichier.&lt;/p&gt;
&lt;p&gt;Deux types de macros sont d&#233;finissables, le type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;def&lt;/code&gt; et le type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vardef&lt;/code&gt;.&lt;br class='autobr' /&gt;
On utilisera de pr&#233;f&#233;rence le type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vardef&lt;/code&gt; qui permet d'introduire des noms variables&lt;br class='autobr' /&gt;
pour les macros. Par exemple, si on veut d&#233;finir les rotations en donnant leurs angles&lt;br class='autobr' /&gt;
&lt;u&gt;dans&lt;/u&gt; le nom de la macro, on pourra r&#233;aliser une unique macro &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vardef&lt;/code&gt;&lt;br class='autobr' /&gt;
qui d&#233;finit les noms &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rotation60&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rotation120&lt;/code&gt;, etc. De plus, ce type de macros&lt;br class='autobr' /&gt;
permet avantageusement de d&#233;finir en son sein des variables locales gr&#226;ce &#224; l'instruction&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;save&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Notons que toute variable d&#233;clar&#233;e dans une macro (hormis les arguments) est globale si on n'utilise pas l'instruction&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;save&lt;/code&gt; ; remarquons aussi que les d&#233;clarations de type effacent les valeurs des variables qui avaient &#233;t&#233; &#233;ventuellement d&#233;finies avec le m&#234;me nom.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;u&gt;exemple 1 :&lt;/u&gt; quelques points remarquables du triangle&lt;/p&gt;
&lt;p&gt;En reprenant l'exemple 1 de figure , il peut &#234;tre int&#233;ressant de pouvoir directement&lt;br class='autobr' /&gt;
fixer ces points qui reviennent fr&#233;quemment dans nos figures :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;vardef centredegravite (expr a,b,c) = ((a+b+c) scaled 1/3) enddef; vardef orthocentre (expr a,b,c) = save $; pair $; ($-a) rotated 90=whatever*(b-c); ($-b) rotated 90=whatever*(a-c); $ enddef; vardef centrecerclecirconscrit (expr a,b,c) = save $; pair $; ($-1/2[a,b]) rotated 90=whatever*(a-b); ($-1/2[a,c]) rotated 90=whatever*(a-c); $ enddef; vardef cerclecirconscrit (expr a,b,c) = save $,p; pair $; path p; $=centrecerclecirconscrit(a,b,c); p=fullcircle scaled (2*abs($-a)) shifted $; p enddef; vardef centrecercleinscrit (expr a,b,c) = save $; pair $; ($-a)=whatever*(b-a) rotated (1/2*(angle(c-a)-angle(b-a))); ($-b)=whatever*(c-b) rotated (1/2*(angle(a-b)-angle(c-b))); $ enddef; vardef cercleinscrit (expr a,b,c) = save I,M,p; pair I,M; path p; I=centrecercleinscrit(a,b,c); ((M-I) rotated 90)=whatever*(b-a); M=whatever[a,b]; p=fullcircle scaled (2*(abs(M-I))) shifted I; p enddef;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Un exemple d'utilisation en reprenant l'exemple 1 :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;beginfig(1); pair A,B,C,O,G,H; string s; u=1cm; A=origin;B=(5u,0);C=(2u,3.5u); draw A--B--C--cycle; O=centrecerclecirconscrit(A,B,C); G=centredegravite(A,B,C); H=orthocentre(A,B,C); pickup pencircle scaled 2 bp; for t=O,G,H : draw t; endfor endfig; end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_114 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L201xH143/figure4-3ec81.png?1759555697' width='201' height='143' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;u&gt;exemple 2 :&lt;/u&gt; un quadrillage param&#233;trable&lt;/p&gt;
&lt;p&gt;Pour les deux derniers exemples, le probl&#232;me est le m&#234;me, la macro ne doit pas renvoyer un chemin ou un&lt;br class='autobr' /&gt;
vecteur mais bien toute une figure...&lt;br&gt;
Metapost propose ainsi le type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;picture&lt;/code&gt; qui dessine donc l'int&#233;gralit&#233; d'une figure.&lt;br&gt;
Dans notre cas, l'astuce consiste &#224; l'appel de la macro &#224; :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; 1/ r&#233;cup&#233;rer la figure courante et tout effacer ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; 2/ dessiner notre quadrillage ou notre cube (cf. exemple 3) ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; 3/ enregistrer notre figure dans une autre variable ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; 4/ tout effacer et redessiner la figure avent l'appel de la macro ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; 5/ la macro renvoie la variable du dessin qu'elle a fait.&lt;/p&gt;
&lt;p&gt;Les objets de type &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;picture&lt;/code&gt; peuvent &#234;tre transform&#233;s et d&#233;form&#233;s, on voit&lt;br class='autobr' /&gt;
donc l'int&#233;r&#234;t d'un tel type.&lt;/p&gt;
&lt;p&gt;La figure courante est r&#233;cup&#233;rable gr&#226;ce &#224; la variable pr&#233;d&#233;finie &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;currentpicture&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;vardef quadrillage (expr larg,long,espace) = % dessine un r&#233;seau espac&#233; larg et long sans unite % espace en cm save fig,qua; picture fig,qua; fig=currentpicture; currentpicture:=nullpicture; for i=0 upto larg : draw (i*espace,0)--(i*espace,long*espace); endfor; for i=0 upto long : draw (0,i*espace)--(larg*espace,i*espace); endfor; qua=currentpicture; currentpicture:=nullpicture; draw fig; qua enddef;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Un exemple d'utilisation :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;beginfig(1); picture reseau; u=.5cm; reseau=quadrillage(5,3,u); draw reseau rotated 20 withcolor .5red; endfig; end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_116 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L117xH96/figure5-c9a30.png?1759555697' width='117' height='96' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;u&gt;exemple 3 :&lt;/u&gt; Dessiner un cube et le nommer&lt;/p&gt;
&lt;p&gt;Ce dernier exemple joue avec les variables globales, puisque vous remarquerez que&lt;br class='autobr' /&gt;
la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;save&lt;/code&gt; n'a pas &#233;t&#233; utilis&#233; avec le tableau de valeurs sommetCube&lt;br class='autobr' /&gt;
ainsi ce tableau une fois d&#233;fini sort du cadre de notre macro et donc peut-&#234;tre r&#233;utilis&#233;&lt;br class='autobr' /&gt;
dans une autre.&lt;br&gt;
L'utilisation du tableau est int&#233;ressante &#224; &#233;tudier. Les notations&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sommetCube[0]&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sommetCube0&lt;/code&gt; sont identiques, on conservera la premi&#232;re&lt;br class='autobr' /&gt;
&#233;criture dans des boucles par exemple.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;vardef cube (expr depart,dimarete) = save fig,cube,chemin; pair sommetCube[]; path chemin; picture fig,cube; fig=currentpicture; currentpicture:=nullpicture; sommetCube0=depart; sommetCube1=sommetCube0 shifted (dimarete,0); (sommetCube3-sommetCube0)=(sommetCube1-sommetCube0) scaled .5 rotated 35; (sommetCube2-sommetCube1)=(sommetCube0-sommetCube1) scaled .5 rotated (-145); for i:=0 upto 3 : sommetCube[i+4]=sommetCube[i] shifted (0,dimarete); endfor draw sommetCube0--sommetCube1--sommetCube2--sommetCube6-- sommetCube5--sommetCube4--cycle; draw sommetCube1--sommetCube5; draw sommetCube0--sommetCube3--sommetCube7 dashed evenly; draw sommetCube2--sommetCube3 dashed evenly; draw sommetCube4--sommetCube7--sommetCube6; cube=currentpicture; currentpicture:=fig; cube enddef; vardef nommecube = label.llft(&#034;A&#034;, sommetCube0); label.lrt(&#034;B&#034;, sommetCube1); label.rt(&#034;C&#034;, sommetCube2); label.lft(&#034;D&#034;, sommetCube3); label.ulft(&#034;E&#034;, sommetCube4); label.ulft(&#034;F&#034;, sommetCube5); label.urt(&#034;G&#034;, sommetCube6); label.ulft(&#034;H&#034;, sommetCube7); enddef;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Un exemple d'utilisation :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;beginfig(1); picture lecube; pair A,H,F,C; lecube=cube(origin,5cm); draw lecube; nommecube; A=sommetCube0; H=sommetCube7; F=sommetCube5; C=sommetCube2; pickup pencircle scaled 1bp; draw A--F--C; draw H--F; draw A--H--C--cycle dashed evenly; endfig; end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class='spip_document_118 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L308xH281/figure6-859fc.png?1759555697' width='308' height='281' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Netographie&lt;/strong&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://melusine.eu.org/syracuse/metapost/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://melusine.eu.org/syracuse/met...&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.math.jussieu.fr/~zoonek/LaTeX/Metapost/metapost.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.math.jussieu.fr/~zoonek/...&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://cm.bell-labs.com/who/hobby/MetaPost.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://cm.bell-labs.com/who/hobby/M...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Ce n'est, l&#224; encore, qu'une approche de metapost.&lt;br&gt;
On pourra dans d'autres articles montrer l'interaction r&#233;elle avec (La)TeX, des courbes param&#233;tr&#233;es et peut-&#234;tre aussi la possibilit&#233; de faire des mng (images anim&#233;es).&lt;/p&gt;
&lt;div class=&#034;spip_document_125 spip_document spip_documents spip_document_video spip_documents_center spip_document_center&#034;&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;div class=&#034;video-intrinsic-wrapper&#034; style='height:0;width:328px;max-width:100%;padding-bottom:100%;position:relative;'&gt; &lt;div class=&#034;video-wrapper&#034; style=&#034;position: absolute;top:0;left:0;width:100%;height:100%;&#034;&gt; &lt;video class=&#034;mejs mejs-125&#034; data-id=&#034;c92215ccea351cf0208feed7e25e7cf7&#034; data-mejsoptions='{&#034;iconSprite&#034;: &#034;plugins-dist/medias/lib/mejs/mejs-controls.svg&#034;,&#034;alwaysShowControls&#034;: true,&#034;pluginPath&#034;:&#034;plugins-dist/medias/lib/mejs/&#034;,&#034;loop&#034;:false,&#034;videoWidth&#034;:&#034;100%&#034;,&#034;videoHeight&#034;:&#034;100%&#034;}' width=&#034;100%&#034; height=&#034;100%&#034; controls=&#034;controls&#034; preload=&#034;none&#034; &gt; &lt;source type=&#034;video/x-mng&#034; src=&#034;IMG/mng/animation.mng&#034; /&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L64xH64/mng-8a250.svg?1773232886' width='64' height='64' alt='Impossible de lire la video' /&gt; &lt;/video&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#034;base64javascript21644609269f5b9ab92cdf6.40684774&#034; title=&#034;PHNjcmlwdD4gdmFyIG1lanNwYXRoPSdwbHVnaW5zLWRpc3QvbWVkaWFzL2xpYi9tZWpzL21lZGlhZWxlbWVudC1hbmQtcGxheWVyLm1pbi5qcz8xNzczMjMyNDU1JyxtZWpzY3NzPSdwbHVnaW5zLWRpc3QvbWVkaWFzL2xpYi9tZWpzL21lZGlhZWxlbWVudHBsYXllci5taW4uY3NzPzE3NzMyMzI0NTUnOwp2YXIgbWVqc2xvYWRlcjsKKGZ1bmN0aW9uKCl7dmFyIGE9bWVqc2xvYWRlcjsidW5kZWZpbmVkIj09dHlwZW9mIGEmJihtZWpzbG9hZGVyPWE9e2dzOm51bGwscGx1Zzp7fSxjc3M6e30saW5pdDpudWxsLGM6MCxjc3Nsb2FkOm51bGx9KTthLmluaXR8fChhLmNzc2xvYWQ9ZnVuY3Rpb24oYyl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLmNzc1tjXSl7YS5jc3NbY109ITA7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO2IuaHJlZj1jO2IucmVsPSJzdHlsZXNoZWV0IjtiLnR5cGU9InRleHQvY3NzIjtkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGIpfX0sYS5pbml0PWZ1bmN0aW9uKCl7ITA9PT1hLmdzJiZmdW5jdGlvbihjKXtqUXVlcnkoImF1ZGlvLm1lanMsdmlkZW8ubWVqcyIpLm5vdCgiLmRvbmUsLm1lanNfX3BsYXllciIpLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7dmFyIGU9ITAsaDtmb3IoaCBpbiBkLmNzcylhLmNzc2xvYWQoZC5jc3NbaF0pO2Zvcih2YXIgZiBpbiBkLnBsdWdpbnMpInVuZGVmaW5lZCI9PQp0eXBlb2YgYS5wbHVnW2ZdPyhlPSExLGEucGx1Z1tmXT0hMSxqUXVlcnkuZ2V0U2NyaXB0KGQucGx1Z2luc1tmXSxmdW5jdGlvbigpe2EucGx1Z1tmXT0hMDtiKCl9KSk6MD09YS5wbHVnW2ZdJiYoZT0hMSk7ZSYmalF1ZXJ5KCIjIitjKS5tZWRpYWVsZW1lbnRwbGF5ZXIoalF1ZXJ5LmV4dGVuZChkLm9wdGlvbnMse3N1Y2Nlc3M6ZnVuY3Rpb24oYSxjKXtmdW5jdGlvbiBiKCl7dmFyIGI9alF1ZXJ5KGEpLmNsb3Nlc3QoIi5tZWpzX19pbm5lciIpO2EucGF1c2VkPyhiLmFkZENsYXNzKCJwYXVzaW5nIiksc2V0VGltZW91dChmdW5jdGlvbigpe2IuZmlsdGVyKCIucGF1c2luZyIpLnJlbW92ZUNsYXNzKCJwbGF5aW5nIikucmVtb3ZlQ2xhc3MoInBhdXNpbmciKS5hZGRDbGFzcygicGF1c2VkIil9LDEwMCkpOmIucmVtb3ZlQ2xhc3MoInBhdXNlZCIpLnJlbW92ZUNsYXNzKCJwYXVzaW5nIikuYWRkQ2xhc3MoInBsYXlpbmciKX1iKCk7YS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IixiLCExKTsKYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5aW5nIixiLCExKTthLmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlIixiLCExKTthLmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlZCIsYiwhMSk7Zy5hdHRyKCJhdXRvcGxheSIpJiZhLnBsYXkoKX19KSl9dmFyIGc9alF1ZXJ5KHRoaXMpLmFkZENsYXNzKCJkb25lIiksYzsoYz1nLmF0dHIoImlkIikpfHwoYz0ibWVqcy0iK2cuYXR0cigiZGF0YS1pZCIpKyItIithLmMrKyxnLmF0dHIoImlkIixjKSk7dmFyIGQ9e29wdGlvbnM6e30scGx1Z2luczp7fSxjc3M6W119LGUsaDtmb3IoZSBpbiBkKWlmKGg9Zy5hdHRyKCJkYXRhLW1lanMiK2UpKWRbZV09alF1ZXJ5LnBhcnNlSlNPTihoKTtiKCl9KX0oalF1ZXJ5KX0pO2EuZ3N8fCgidW5kZWZpbmVkIiE9PXR5cGVvZiBtZWpzY3NzJiZhLmNzc2xvYWQobWVqc2NzcyksYS5ncz1qUXVlcnkuZ2V0U2NyaXB0KG1lanNwYXRoLGZ1bmN0aW9uKCl7YS5ncz0hMDthLmluaXQoKTtqUXVlcnkoYS5pbml0KTtvbkFqYXhMb2FkKGEuaW5pdCl9KSl9KSgpOzwvc2NyaXB0Pg==&#034;&gt;&lt;/div&gt; &lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Utiliser LaTeX</title>
		<link>https://clx.asso.fr/spip/?Utiliser-LaTeX</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?Utiliser-LaTeX</guid>
		<dc:date>2002-12-05T17:08:12Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>David Cobac</dc:creator>


		<dc:subject>Bureautique</dc:subject>
		<dc:subject>Publication</dc:subject>
		<dc:subject>LaTeX</dc:subject>

		<description>&lt;p&gt;Un bref aper&#231;u de LaTeX&lt;/p&gt;

-
&lt;a href="https://clx.asso.fr/spip/?-Transition-vers-le-Libre-" rel="directory"&gt;Transition vers le Libre...&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-Bureautique-+" rel="tag"&gt;Bureautique&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Publication-+" rel="tag"&gt;Publication&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-LaTeX-+" rel="tag"&gt;LaTeX&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L107xH150/resultat-2-462c8.png?1759541566' alt='' class='spip_logo spip_logo_right' width='107' height='150' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Vous ne connaissez pas encore LaTex ? qu'&#224; cela ne tienne. Voici un petit article qui pose les bases de ce &#034;langage de mise en forme de texte&#034;. Vous y trouverez &#233;galement un exemple d'utilisation pour cr&#233;er des en-t&#234;tes de devoirs surveill&#233;s.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Qu'est-ce que LaTeX ?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#034;https://fr.wikipedia.org/wiki/LaTeX&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;LaTeX&lt;/a&gt; est un processeur de texte qui a &#233;t&#233; initialement con&#231;u pour &#233;diter des documents scientifiques.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Pourquoi utiliser LaTeX ?&lt;/h2&gt;
&lt;p&gt;Les formats des logiciels habituellement utilis&#233;s par les enseignants tels que MS-Word&lt;br class='autobr' /&gt;
sont propri&#233;taires, ce qui peut emp&#234;cher ou contrarier la portabilit&#233; des textes&lt;br class='autobr' /&gt;
d'une plateforme &#224; une autre ou m&#234;me d'une version du logiciel &#224; l'autre.&lt;br class='autobr' /&gt;
LaTeX constitue, en ce sens, une solution qui assure la p&#233;rennit&#233; des documents.&lt;br&gt;
De plus, en utilisant LaTeX, on s'affranchit de longues manipulations de la souris pour aller&lt;br class='autobr' /&gt;
chercher l'&#171; &#233;diteur d'&#233;quations &#187; car ici les formules sont directement int&#233;gr&#233;es au texte.&lt;br class='autobr' /&gt;
Le seul vrai inconv&#233;nient de LaTeX est qu'il s'agit d'un langage &#224; balise, comme le &lt;a href=&#034;https://fr.wikipedia.org/wiki/HTML&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;HTML&lt;/a&gt;. Il n&#233;cessite donc d&#232;s le d&#233;part&lt;br class='autobr' /&gt;
une phase d'apprentissage peu intuitive. Mais le r&#233;sultat est &#224; la hauteur de l'investissement consenti,&lt;br class='autobr' /&gt;
peu &#224; peu la puissance du langage s'impose devant sa syntaxe.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Quelques sp&#233;cificit&#233;s de LaTeX&lt;/h2&gt;
&lt;p&gt;LaTeX n'est pas &#224; l'image d'autres logiciels &lt;a href=&#034;https://fr.wikipedia.org/wiki/WYSIWYG&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;WYSIWYG&lt;/a&gt; c'est-&#224;-dire qu'il g&#232;re lui-m&#234;me, &#224; moins qu'on&lt;br class='autobr' /&gt;
ne le force &#224; ne pas le faire, les espaces. Ainsi passer &#224; la ligne dans le document source ne fait pas forc&#233;ment&lt;br class='autobr' /&gt;
passer &#224; la ligne dans le document final, ou encore en mettant deux espaces cons&#233;cutifs, LaTeX n'en&lt;br class='autobr' /&gt;
retiendra qu'un.&lt;br&gt;
Pour passer en mode math&#233;matique (c'est-&#224;-dire pour &#233;crire des formules), on encadre la formule&lt;br class='autobr' /&gt;
avec le symbole $, pour isoler la formule sur une ligne s&#233;par&#233;e, on encadre avec le double symbole&lt;br class='autobr' /&gt;
$$.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Allure d'un document LaTeX&lt;/h2&gt;
&lt;p&gt;Voici le fichier source typique d'un document LaTeX, tout ce qui suit sur une ligne le symbole % est&lt;br class='autobr' /&gt;
un commentaire qui n'appara&#238;tra pas dans le document final :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='10' class='spip_cadre spip_cadre_block' dir='ltr'&gt;% partie d&#233;clarative \documentclass[12pt]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage[french]{babel} % le document commence r&#233;ellement ici \begin{document} Une formule que j'aime particuli&#232;rement est : $$\sum_{n=1}^{+\infty} \frac{1}{n^2}=\frac{\pi^2}{6}$$ \end{document}&lt;/textarea&gt;
&lt;p&gt;Pour visualiser le r&#233;sultat de votre frappe, on utilise simplement la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;latex&lt;/code&gt; suivie&lt;br class='autobr' /&gt;
du nom du fichier source &#224; traiter, ici essaidocclx.tex.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='27' class='spip_cadre spip_cadre_block' dir='ltr'&gt;bash-2.05$ latex essaidocclx.tex This is TeX, Version 3.14159 (Web2C 7.3.1) (essaidocclx.tex LaTeX2e &lt;2000/06/01&gt; Babel &lt;v3.7h&gt; and hyphenation patterns for american, french, german, ngerman, i talian, portuges, spanish, swedish, nohyphenation, loaded. (/usr/share/texmf/tex/latex/base/article.cls Document Class: article 2000/05/19 v1.4b Standard LaTeX document class (/usr/share/texmf/tex/latex/base/size12.clo)) (/usr/share/texmf/tex/latex/base/inputenc.sty (/usr/share/texmf/tex/latex/base/latin1.def)) (/usr/share/texmf/tex/latex/base/fontenc.sty (/usr/share/texmf/tex/latex/base/t1enc.def)) (/usr/share/texmf/tex/generic/babel/babel.sty (/usr/share/texmf/tex/generic/babel/frenchb.ldf (/usr/share/texmf/tex/generic/babel/babel.def) ************************************* * Local config file frenchb.cfg used * (/usr/share/texmf/tex/generic/babel/frenchb.cfg))) No file essaidocclx.aux. (/usr/share/texmf/tex/latex/cyrillic/ot2wncyr.fd) [1] (essaidocclx.aux) ) Output written on essaidocclx.dvi (1 page, 704 bytes). Transcript written on essaidocclx.log.&lt;/textarea&gt;
&lt;p&gt;Le compilateur nous pr&#233;vient des op&#233;rations qu'il a effectu&#233;es et &#233;ventuellement des erreurs rencontr&#233;es. Il produit alors trois nouveaux fichiers qui portent le m&#234;me nom que votre source&lt;br class='autobr' /&gt;
mais dont les extensions sont .log (fichier journal de votre compilation), .aux (fichier de renseignement pour le compilateur pour une &#233;ventuelle deuxi&#232;me compilation) et .dvi. Ce dernier est le r&#233;sultat binaire de votre compilation : votre document final.&lt;/p&gt;
&lt;p&gt;Pour afficher son contenu, il suffit d'utiliser un visualisateur pour ce type de documents : xdvi ou kdvi par&lt;br class='autobr' /&gt;
exemple.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Logiciels &#224; installer&lt;/h2&gt;
&lt;p&gt;LaTeX est int&#233;gr&#233; de mani&#232;re assez compl&#232;te avec une distribution (&#224; l'image de &lt;a href=&#034;https://fr.wikipedia.org/wiki/GNU%2Flinux&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;GNU/linux&lt;/a&gt;) qui contient des outils&lt;br class='autobr' /&gt;
de visualisation, de conversion d'un format vers un autre (n&#233;anmoins, pour la conversion MSWord-LaTeX, peu de choses&lt;br class='autobr' /&gt;
r&#233;ellement utilisables existent), des polices d'&#233;criture, des logiciels d'&#233;criture de police ou de&lt;br class='autobr' /&gt;
conception de figures g&#233;om&#233;triques, etc.&lt;br class='autobr' /&gt;
L'une des plus connue est la distribution tetex (sans doute celle dont vous disposez peut-&#234;tre m&#234;me sans le savoir&lt;br class='autobr' /&gt;
sur votre syst&#232;me GNU/Linux).&lt;br class='autobr' /&gt;
Bien s&#251;r, si vous voulez ajouter de nouveaux fichiers de style .sty ou de nouvelles classes de&lt;br class='autobr' /&gt;
documents .cls &#224; votre distribution, deux options s'offrent &#224; vous :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; l'int&#233;grer directement dans la distribution au bon endroit par exemple cr&#233;er un r&#233;pertoire dans &lt;br class='autobr' /&gt;
/usr/share/texmf/tex/latex et y mettre votre fichier puis mettre &#224; jour la base de donn&#233;es de latex&lt;br class='autobr' /&gt;
en tapant la commande texhash ou mktexlsr ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; l'installer dans votre r&#233;pertoire /home par exemple dans un r&#233;pertoire StyLatex et exporter la variable&lt;br class='autobr' /&gt;
d'environnement TEXINPUTS (commande export sous bash) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;TEXINPUTS=$TEXINPUTS:~/StyLatex export TEXINPUTS&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;LaTeX pour les profs&lt;/h2&gt;
&lt;p&gt;Quel que soit le niveau, le besoin est le m&#234;me : des en-t&#234;tes pour les devoirs, des formatages d'exercices,&lt;br class='autobr' /&gt;
etc. De nombreuses solutions existent (sans doute autant que de profs qui utilisent LaTeX), h&#233;las aucune&lt;br class='autobr' /&gt;
n'a sans doute &#233;t&#233; un jour document&#233;e...&lt;br&gt;
Aussi, je propose tout simplement la cr&#233;ation d'une macro d'en-t&#234;te de devoir surveill&#233; et celle d'une &#233;tiquette d'exercices.&lt;br class='autobr' /&gt;
Pour cr&#233;er une macro-commande, l'instruction est &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\newcommand&lt;/code&gt;, sa syntaxe est :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;\newcommand{\NomDeLaCommande}[NbreArguments]{codedelacommande}&lt;/textarea&gt;
&lt;p&gt;La partie entre crochets est optionnelle.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Voici un exemple simple de macro d'en-t&#234;te de devoir :&lt;/p&gt;
&lt;p&gt;Mon besoin est simple : un en-t&#234;te avec &#034;Devoir surveill&#233; n&#176;xx&#034; centr&#233; avec les minuscules en capitales&lt;br class='autobr' /&gt;
d'imprimerie plus petites que les majuscules, puis &#224; la ligne suivante &#224; gauche la classe et &#224; droite la&lt;br class='autobr' /&gt;
date du devoir en italique.&lt;br class='autobr' /&gt;
Ma commande va prendre trois arguments : le num&#233;ro de devoir, la classe et la date.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre spip_cadre_block' dir='ltr'&gt;\newcommand{\ds}[3]{ \begin{center} \textsc{Devoir Surveill&#233; n&#176;#1}\\ #2\hfill\textit{#3} \end{center} \hrule\vspace{\baselineskip} }&lt;/textarea&gt;
&lt;p&gt;Voil&#224;, c'est tout.&lt;br&gt;
L'instruction \ est un passage &#224; la ligne.&lt;br&gt;
Les #1, #2 et #3 seront remplac&#233;s par les arguments dans leur ordre ; tout ce qui se trouve entre&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\begin{center}&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\end{center}&lt;/code&gt; sera centr&#233; ; les commandes &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\textsc&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\textit&lt;/code&gt; indiquent le style &#224; appliquer&lt;br class='autobr' /&gt;
&#224; la police courante ; le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\hrule&lt;/code&gt; dessine un trait horizontal ; la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\vspace&lt;/code&gt; ins&#233;re un espace vertical ici de longueur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\baselineskip&lt;/code&gt; qui est l'espacement de deux lignes dans le contexte courant de telle mani&#232;re que le texte suivant notre en-t&#234;te ne soit pas coll&#233; &#224; la ligne trac&#233;e pr&#233;c&#233;demment.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Voici un exemple simple de macro d'exercice :&lt;/p&gt;
&lt;p&gt;Le besoin est ici un peu diff&#233;rent puisque c'est LaTeX qui calculera le numero de l'exercice en fonction&lt;br class='autobr' /&gt;
de sa position par rapport aux autres (quel luxe !).&lt;/p&gt;
&lt;p&gt;Nous allons cr&#233;er la commande &#034;exercice&#034;, nous avons d'abord besoin d'un petit compteur qui s'incr&#233;mentera &#224; chaque appel de notre commande &#034;exercice&#034; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;\newcounter{numeroexo} \newcommand{\exercice}{\par\noindent\stepcounter{numeroexo} \hspace{-.25cm}\fbox{\textbf{Exercice \arabic{numeroexo}}}\quad}&lt;/textarea&gt;
&lt;p&gt;Les commandes &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\newcounter&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\stepcounter&lt;/code&gt; g&#232;rent la cr&#233;ation et l'incr&#233;mentation de notre compteur, son&lt;br class='autobr' /&gt;
&#233;criture se fait &lt;i&gt;via&lt;/i&gt; la commande \arabic qui met sous la forme 1, 2, 3 etc. Vous pouvez d&#233;finir d'autres formes.&lt;/p&gt;
&lt;p&gt;L'instruction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\noindent&lt;/code&gt; emp&#234;che l'indentation automatique ajout&#233;e par LaTeX pour les nouveaux paragraphes, l'instruction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\hspace&lt;/code&gt; introduit dans notre cas un espace &#171; n&#233;gatif &#187; horizontal de -0,25 cm, c'est &#224; dire un retrait.&lt;br&gt;
Vient ensuite l'en-t&#234;te de l'exercice avec son num&#233;ro, le tout encadr&#233; (instruction &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\fbox&lt;/code&gt;). On fait alors&lt;br class='autobr' /&gt;
suivre notre encadr&#233; d'un espace \quad qui correspond &#224; la largeur d'un M majuscule dans la police&lt;br class='autobr' /&gt;
courante.&lt;/p&gt;
&lt;p&gt;Voici donc notre document :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='26' class='spip_cadre spip_cadre_block' dir='ltr'&gt;% partie d&#233;clarative \documentclass[12pt]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage[french]{babel} \newcommand{\ds}[3]{ \begin{center} \textsc{Devoir Surveill&#233; n&#176;#1}\\ #2\hfill\textit{#3} \end{center} \hrule\vspace{\baselineskip} } \newcounter{numeroexo} \newcommand{\exercice}{\par\noindent\stepcounter{numeroexo} \hspace{-.25cm}\fbox{\textbf{Exercice \arabic{numeroexo}}}\quad} % le document commence r&#233;ellement ici \begin{document} \ds{3}{Seconde 8}{Lundi 2 D&#233;cembre} Une formule que j'aime particuli&#232;rement est : $$\sum_{n=1}^{+\infty} \frac{1}{n^2}=\frac{\pi^2}{6}$$ \exercice Soit $ABCD$ un t&#233;tra&#232;dre r&#233;gulier. \exercice Soit $f$ la fonction d&#233;finie sur $]-\infty;0]$ par $f(x)=\sqrt{-x}$. \end{document}&lt;/textarea&gt;
&lt;p&gt;Voici le r&#233;sultat :&lt;/p&gt;
&lt;div class='spip_document_106 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L451xH634/resultat-2-759e2.png?1760077244' width='451' height='634' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Ce n'est qu'un d&#233;but.&lt;br&gt;
Bien s&#251;r, vous pouvez cr&#233;er votre propre fichier de macro-commandes et l'appeler avec la commande :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;\usepackage{MonFichierDeMacros}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui &#233;vite d'avoir un en-t&#234;te de source d&#233;mentiel &#224; taper tout le temps.&lt;br&gt;
Les macros donn&#233;es en exemple sont tr&#232;s simples et &#224; ce titre perfectibles, on peut m&#234;me envisager de&lt;br class='autobr' /&gt;
cr&#233;er un environnement d'exercices plut&#244;t qu'une commande, le contenu de l'exercice se trouverait alors&lt;br class='autobr' /&gt;
entre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\begin{exercice}&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\end{exercice}&lt;/code&gt; (cf. commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\newenvironment&lt;/code&gt;).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les &#233;diteurs pour taper le source&lt;/h2&gt;
&lt;p&gt;Les fans d'emacs seront combl&#233;s par le mode AucTeX.&lt;br class='autobr' /&gt;
Personnellement, j'utilise Nedit pour lequel a &#233;t&#233; cr&#233;&#233; une extension &#034;&#224; la AucTeX&#034;.&lt;br&gt;
On trouvera aussi, des possibilit&#233;s plus WYSIWYG comme LyX.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Conversion en .ps et .pdf&lt;/h2&gt;
&lt;p&gt;Pour obtenir un document au format &lt;a href=&#034;https://fr.wikipedia.org/wiki/PostScript&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;PostScript&lt;/a&gt;, on utilisera la commande dvips qui permet, &#224; partir du&lt;br class='autobr' /&gt;
binaire .dvi, de produire du code PostScript.&lt;br class='autobr' /&gt;
Pour la conversion en &lt;a href=&#034;https://fr.wikipedia.org/wiki/PDF&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;PDF&lt;/a&gt;, on aura le choix entre pdflatex &#224; utiliser directement sur le code source&lt;br class='autobr' /&gt;
et ps2pdf qu'on utilisera &#224; partir du document cr&#233;&#233; avec dvips.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Netographie&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.grappa.univ-lille3.fr/FAQ-LaTeX/index.php&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.grappa.univ-lille3.fr/FA...&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://tex.loria.fr&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://tex.loria.fr&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://melusine.eu.org/syracuse/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://melusine.eu.org/syracuse/&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.math.jussieu.fr/~zoonek/LaTeX/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.math.jussieu.fr/~zoonek/...&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.lyx.org&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.lyx.org&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.tug.org/teTeX&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.tug.org/teTeX&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Bien s&#251;r LaTeX offre de multiples arrangements graphiques comme par exemple la gestion compl&#218;te de la dimension de la page.&lt;/p&gt;
&lt;p&gt;On pourra aussi explorer dans un autre article, l'insertion d'images ou encore la production de figures g&#233;om&#233;triques.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>


 
	


 
	

</channel>
</rss>
