Vim, LaTeX, console et UTF8

Grrrrrr…

Passer du latin1 (iso-8859-1) à UTF8 est une sacré galère…

Voici une collection de mes derniers soucis :

– Vim qui me montre les caractères accentués dans un fichier, mais dans une console, le même fichier lu avec cat contient des hiéroglyphes;

– LaTeX qui plante avec ce genre de fichier et \usepackage[utf8]{inputenc}

– …

Et pourtant :

– echo $LANG dans une console est à fr_FR.UTF-8, car j’ai fait dpkg-reconfigure locales avec ma jolie Debian

– dans mon .vimrc, set encoding=utf-8 et setglobal fileencoding=utf-8

– ma console Gnome est en utf8

Si j’écris cet article c’est que j’ai une solution, même si je comprends pas vraiment… Il suffit de forcer Vim à passer en utf8 ( je croyais que ce que j’avais écris juste avant suffisait … ) en tapant en mode éditeur :

:edit ++enc=utf-8

Le fichier passe alors en utf8 et il ne reste plus qu’à se retaper tous  les accents…

Éviter de faire cela dans votre énorme fichier de 9800 lignes qui contient tous vos brevets blancs depuis 10 ans, sauf si vous adorez les 1,$s/D?montrer/Démontrer … Lol

Si quelqu’un peut m’expliquer dans le détail tout cela, merci de laisser un commentaire !

Publié dans @ Linux. Étiquettes : . Leave a Comment »

Droites remarquables du triangle et pst-eucl

Un deuxième exemple qui utilise l’extension euclidienne pst-eucl de pstricks.

\begin{pspicture}(16,16)
\psset{PointSymbol=+}   % Je préfére les + pour les points
\pstGeonode[PosAngle={180,45,0}, CurveType=polygon](0,0){A}(5,14){B}(16,0){C}  % Le triangle
\pstMiddleAB[PosAngle=90]{A}{B}{C’}  % Définition et tracé des milieux
\pstMiddleAB[PosAngle=-135]{A}{C}{B’}
\pstMiddleAB[PosAngle=110]{B}{C}{A’}
\pstLineAB[nodesep=-2, linecolor=red]{A’}{A} % Tracé des médianes en rouge, elles dépassent de 2pt
\pstLineAB[nodesep=-2, linecolor=red]{B’}{B}
\pstLineAB[nodesep=-2, linecolor=red]{C’}{C}
% Ci-dessous les médiatrices avec des points cachés et un codage automatique
\pstMediatorAB[CodeFig=true, CodeFigColor=black, SegmentSymbol=pstslash,   PointName=none, PointSymbol=none, nodesep=-20, linecolor=blue]{B}{A}{M_1}{M_2}
\pstMediatorAB[CodeFig=true, CodeFigColor=black, SegmentSymbol=pstslashh,  PointName=none, PointSymbol=none, nodesep=-20, linecolor=blue]{A}{C}{M_3}{M_4}
\pstMediatorAB[CodeFig=true, CodeFigColor=black, SegmentSymbol=pstslashhh, PointName=none, PointSymbol=none, nodesep=-20, linecolor=blue]{C}{B}{M_5}{M_6}
\pstProjection[PointName=none, PointSymbol=none]{A}{B}{C}[K_1]  % Pied des hauteurs avec une projection
\pstProjection[PointName=none, PointSymbol=none]{A}{C}{B}[K_2]
\pstProjection[PointName=none, PointSymbol=none]{C}{B}{A}[K_3]
\pstLineAB[nodesep=-20, linecolor=green]{C}{K_1} % Tracé des hauteurs
\pstLineAB[nodesep=-20, linecolor=green]{B}{K_2}
\pstLineAB[nodesep=-20, linecolor=green]{A}{K_3}
 

\pstRightAngle{C}{K_1}{A} % Un angle droit au pied des hauteurs
\pstRightAngle{B}{K_2}{C}
\pstRightAngle{A}{K_3}{B}

\pstInterLL[PosAngle=90]{A}{A’}{B}{B’}{G} % G comme intersection de deux médianes
\pstInterLL[PosAngle=90]{M_1}{M_2}{M_3}{M_4}{O} % O comme intersection de deux médiatrices
\pstInterLL[PosAngle=90]{A}{K_3}{B}{K_2}{H} % H comme intersection de deux hauteurs

\pstLineAB[nodesep=-20, linecolor=magenta, linewidth=2pt]{H}{G} % la droite d’Euler

\pstCircleOA{O}{A} % Le cercle circonscrit
\end{pspicture}

Je vous renvoie à la documentation pour les détails. Toute cette figure ne dépend que des coordonnées des points A, B et C de départ. J’utilise le calcul du milieu, la médiatrice, la projection orthogonale et l’intersection de droite.

Et voilà :

Publié dans Pstricks. Étiquettes : , . Leave a Comment »

Pst-eucl : la géométrie euclidienne pour Pstricks

Pstricks est une suite de macro-commandes pour insérer des figures PostScript directement dans un fichier LaTeX. C’est un des moyens les plus élégants et efficaces pour obtenir des figures de grandes qualité.

Comme LaTeX, de nombreuses extensions sont disponibles pour la plupart des situations. Pour mes cours au collège, j’utilise souvent pst-eucl, par Dominique Rodriguez. C’est un équivalent de Geogebra, mais en ligne de commande. On définit les points de départ, puis on utilise des commandes du type, milieu, médiatrice, bissectrice… Je vous renvoie à la documentation pour vous faire une idée.

Vous trouverez dans un autre article un exemple plus complexe illustrant les droites remarquables du triangle.

Voici un exemple que j’utilise en cinquième. Une figure de départ et c’est pst-eucl qui se charge de faire les symétries centrales et axiales.

Ajouter cette ligne dans le préambule du fichier tex

\usepackage{pstricks, pst-eucl}

Puis

\begin{pspicture}(24,16)
\psset{PointSymbol=+}
\pstGeonode[PosAngle={-90,-90,270,-45,45,45,90,45,-45,235}, CurveType=polygon](5,3){A}(8,3){B}(11,5){C}(11,8){D}(8,8){E}(8,11){F}(5,8){G}(2,8){H}(2,5){I}(5,5){J}
\pstGeonode[PointSymbol=none, PointName=none](16,15){D_1}(10,0){D_2}
\pstGeonode[dotsize=4pt, PosAngle=90](12,10){O}
\pstLineAB[nodesep=-10]{D_1}{D_2}
\pstOrtSym[CurveType=polygon]{D_1}{D_2}{A,B,C,D,E,F,G,H,I,J}[A’,B’,C’,D’,E’,F’,G’,H’,I’,J’]
\pstSymO[CurveType=polygon]{O}{A,B,C,D,E,F,G,H,I,J}[A »,B »,C »,D »,E »,F »,G »,H »,I »,J »]
\end{pspicture}

\psset permet de faire passer des options, comme PointSymbol que je préfère en + plutôt que x ou *.

La ligne \pstGeonode permet de définir les points par leurs coordonnées, l’argument PosAngle indique la position du nom du sommet par rapport au point, l’argument CurveType permet de joindre les points.

Je définis une droite par deux points invisibles D_1 et D_2 et un centre de symétrie O

\pstOrtSym et \pstSymO terminent le boulot.

Je peux affirmer aux élèves que c’est bien l’ordinateur qui a produit le calque de correction !

Publié dans Pstricks. Étiquettes : , . 3 Comments »

LaTeX et Sketch

J’utilise depuis longtemps pstricks pour intégrer directement des figures géométriques dans mes document en \LaTeX. En particulier les exportations depuis Geogebra sont un moyen simple de faire cette intégration sans mettre les doigts dans le code… même si c’est drôle !

Le soucis est avec les figures en 3D. Je viens de découvrir Sketch, un petit soft sous Linux mais qui fonctionne aussi avec les Fenêtres.

Sketch permet de construire de manière assez mathématique une objet en 3D puis en indiquant le point de vue, en ajoutant translation, rotation… il vous fournit le code pstricks prêt à insérer dans vos fichiers \LaTeX.

Un petit exemple :

—   Fichier Cube.sk  —

def c 3      % Taille du cube
def cube{
polygon[cull=false,fillcolor=green](0,0,0)(c,0,0)(c,c,0)(0,c,0)  % cull=false pour une histoire de face cachée
polygon[cull=false,fillcolor=blue](0,0,c)(c,0,c)(c,c,c)(0,c,c)
polygon[cull=false,fillcolor=orange](0,0,0)(0,c,0)(0,c,c)(0,0,c)
polygon[cull=false,fillcolor=red](c,0,0)(c,c,0)(c,c,c)(c,0,c)
polygon[cull=false,fillcolor=white](0,0,0)(c,0,0)(c,0,c)(0,0,c)
polygon[cull=false,fillcolor=yellow](0,c,0)(c,c,0)(c,c,c)(0,c,c)
}
put{view ((c,c/2,c),(0,0,0))}{cube}  % je regarde mon cube depuis (c,c/2,c) en direction de (0,0,0)
put{rotate(90,(0,0,0),[c,0,0]) then view ((c,c/2,c),(0,0,0)) then translate([4,0,0])}{cube} % une rotation en plus
put{rotate(180,(0,0,0),[c,0,0]) then view ((c,-c/2,c),(0,0,0)) then translate([0,-5,6])}{cube}

Puis sketch Cube.sk -o Cube.tex

J’obtiens le code pstricks et voici le résultat :

Ce qui est intéressant, c’est de définir le cube de manière mathématique puis de laisser sketch faire les rotations, les translations, le point de vue !

Je viens de rédiger une méthode pour le Rubik’s Cube de cette manière.

Publié dans Pstricks. Étiquettes : , . Leave a Comment »

Les mathématiciens et LaTeX

C’est en visitant la page personnelle de Cédric Villani, l’une des deux médailles Fields de 2010, que j’ai découvert un article passionnant sur l’écriture des mathématiciens (le seul article de sa très longue bibliographie que je sois capable de comprendre… ) qui fait une large place au merveilleux langage \TeX et à ses extensions LaTeX.

Quand le bon exemple vient de très haut…

A signaler aussi, et c’est exceptionnel, son invitation sur le plateau de Canal+ le 8 septembre dernier. Lire la suite sur le site image des maths du CNRS.

Publié dans Mathématiciens, Mathématiques. Étiquettes : . 6 Comments »

Traitement de texte basique avec LaTeX

A lire avant tout :

Ce document montre comment utiliser les commandes basiques comme :

  • mettre en gras, en italique;
  • changer la taille des caractères;
  • centrer, aligner à droite…

Le minimum pour survivre

Les commandes commencent par le caractère \ (anti-slash)

Un passage à la ligne n’est pas interprété comme tel par \LaTeX, il faut laisser une ligne vierge pour changer de paragraphe.Pour forcer un passage à la ligne on peut utiliser, mais c’est rare, \\ .
On utilise souvent les accolades {… } pour délimiter un bloc de texte, par exemple pour changer la taille de la police :

Taille normale {\Huge ceci est en énorme} et retour à la normal.

Les accolades peuvent bien sur être imbriquées.
De nombreuses commandes se présentent sous la forme :

\begin{commande}

\end{commande}

Le caractère % permet de commenter le fichier.
Le caractère ~ permet d’indiquer qu’un espace est insécable ( pas de passage à la ligne )

La taille des caractères

En typographie classique, on mesure la taille des caractères en point. 1pt=0,03515cm.
Dans la déclaration initiale \documentclass[10pt]{article} on indique la taille, 10pt, du style normal dans tout le document. On a le choix entre 10pt (par défaut) , 11pt et 12pt.

Il y a alors 10 tailles de caractères possibles :

10pt 11pt 12pt
/Huge 25pt 25pt 25pt
/huge 20pt 20pt 25pt
/LARGE 18pt 18pt 20pt
/Large 14pt 14pt 18pt
/large 12pt 12pt 14pt
/normalsize 10pt 11pt 12pt
/small 9pt 10pt 11pt
/footnotesize 8pt 9pt 10pt
/scriptsize 7pt 8pt 8pt
/tiny 5pt 6pt 6pt

Il suffit d’écrire {\Huge Voici un texte en énorme} pour changer de taille de caractère.

Le style des caractères

Mettre en gras, en italique, en penché… et bien plus encore !

\textnormal{texte} pour écrire en caractères normaux (par défaut) donc inutile !
\textit{texte} pour écrire en caractères italiques.
\textsl{texte} pour écrire en caractères penchés.
\textbf{texte} pour écrire en caractères gras.
\texttt{texte} pour écrire en caractères machine à écrire.
\textsf{texte} pour écrire en caractères linéaux.
\textsc{texte} pour écrire en petites capitales.

On peut mélanger, bien sûr, même si je n’ai jamais compris à quoi servait un texte écrit en gras et en italique !!
Attention, il n’existe pas de petites capitales grasses.

Les dispositions de texte classiques

Centrer

On peut utiliser l’environnement center pour un paragraphe entier ou la commande \centerline pour une seule ligne :

\begin{center}

Tout ce texte sera centré

Ce paragraphe aussi

Et même celui-la\\
Avec un saut de ligne forcé

\end{center}

Ou pour une seule ligne :

\centerline{\Huge Je veux centrer ce truc énorme }

Tout à gauche, sans justification

C’est l’environnement flushleft.

\begin{flushleft}

\end{flushleft}

Tout à droite

C’est l’environnement flushright.

\begin{flushright}

\end{flushright}

Les espacements verticaux et horizontaux

Quand on souhaite marquer des sauts de lignes plus importants, on dispose des commandes suivantes :

\vspace{1cm} Espace vertical de 1cm
\hspace{1cm} Espace horizontal de 1cm
\bigskip Espace vertical important et proportionnel à la police de base
\medskip Espace vertical moyen et proportionnel à la police de base
\smallskip Espace vertical petit et proportionnel à la police de base
\vfill Espace vertical déterminé en fonction de la place sur la page
\hfill Espace horizontal déterminé en fonction de la place sur la ligne

Un exemple pour finir

Voici le résultat, et ci-dessous le code source.

LaTeX01.tex et LaTeX01.pdf

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\usepackage[francais]{babel}
\pagestyle{empty}\geometry{ 

a4paper,        % a4
tmargin=2cm,    % Marge haute
bmargin=2cm,    % Marge basse
lmargin=2cm,    % Marge gauche
rmargin=2cm,    % Marge droite
headheight=0cm, % Entete
headsep=0cm,    % Séparateur entete
footskip=0cm    % Pied de page
}

\begin{document}

\centerline{\Huge Voici le titre en Huge}

\vspace{2cm}

\textit{Un exemple en italique}, puis un texte normal, \textbf{\Large un peu de gras et Large}, \textsc{des petites capitales en taille normale}.

\bigskip

On peut écrire un texte à partir de la marge gauche et la suite \hspace{4cm} 4cm plus loin.

Ou encore

Écrire un texte \hfill et la suite le plus loin possible sur la même ligne

\vspace{3cm}

Nous voici 3cm plus bas !

\begin{flushright}

Ce texte en taille normale est à droite…

\texttt{Celui-ci en machine à écrire aussi}

{\scriptsize Quelques mots en plus petit}

\end{flushright}

\vspace{1cm}

\begin{center}

Nous sommes centré et 1cm plus bas !

Un peu de \hfill texte centré mais loin…\\
Centré

\smallskip

{\tiny Tout petit et centré}

\vfill

Nous prenons toute la place verticale.

On va se retrouver en bas de la page…

{\tiny} Même en tout petit, et centré

{\LARGE Gros mais centré}

\end{center}

\end{document}

 

Il est grand temps de faire des maths. Non ?

Publié dans LaTeX. Étiquettes : . Leave a Comment »

Structure d’un fichier LaTeX

Vous avez enfin réussi à installer \LaTeX

Un fichier \LaTeX est un simple fichier texte, on peut le lire avec n’importe quel éditeur (notepad, vim, éditeurs spécialisés..)

Le code est constitué de deux parties :

  • le préambule : il indique le type de document, les modules à utiliser, les macros commandes, …
  • le corps du document.

Voici un exemple simple qui produit à peu près ceci :

Vive les racines carrées : \sqrt{5}

Préambule

\documentclass{article} Tous les fichiers LaTeX commencent par la déclaration du type de document, ici un article
\usepackage[frenc]{babel} 

\renewcommand{\R}{\sqrt}

Liste des packages nécessaire à la compilation du fichier, ici les règles de la typographie française 

Une déclaration de macro, celle-ci remplace /sqrt par /R pour la racine carrée.

Corps du document

\begin{document} 

Vive les racines carrées : $\R{5}$

\end{document}

Le corps du document 

Les formules mathématiques sont encadrés par les symboles $ … $

Le type de document

Le choix d’une classe de document détermine la structure de celui-ci.

La classe que j’utilise principalement est article, elle offre un découpage en divisions que voici :

  • Partie : \part
  • Chapitre : \chapter
  • Section : \section
  • Sous-section : \subsection
  • Sous-sous-section : \subsubsection
  • Paragraphe : \paragraph
  • Sous-paragraphe : \subparagraph

La classe book utilise les mêmes divisions avec des différences de pagination. Il existe aussi une classe report dans le même genre.

D’autres existent, comme letter ou beamer (pour faire des diaporamas ! )… et vous pouvez même construire la votre !

Pour un usage quotidien, la classe article me semble la plus généraliste.

Signalons enfin que de nombreuses options de classe existent, par exemple :

\documentclass[10pt,a4paper,landscape,]{article} : 10pt indique la taille de la police normale pour tout le document (11pt et 12pt sont disponibles)

Mon préambule

La liste des packages ou modules à utiliser est difficilement exhaustive. Tim Toady comme on dit en Perl ( There Is More One Way To Do It ).

Voici ceux que j’utilise :

\usepackage[utf8]{inputenc} : Je suis sous Linux et j’utilise l’encodage utf8, mettre Latin1 sous Windows
\usepackage[T1]{fontenc} :  Pour avoir des caractère accentué.
\usepackage{amsmath} : Un module de l’American Mathematical Society pour par exemple mettre beau chapeau sur les angles
\usepackage{amsfonts} : Idem
\usepackage{amssymb} : Idem
\usepackage{geometry} : Gestion des marges du document, voir plus bas
\usepackage{eurosym} : Le symbole euro
\usepackage{pstricks} : La géniale boite à outils pour dessiner en postscript
\usepackage{tikz} : Une autre manière de dessiner orienté pgf
\usepackage{multicol} : Gestion du passage à plusieurs colonnes sur une page
\usepackage{lscape} : Pour passer en mode paysage sur une page et pas sur d’autre
\usepackage{graphics} : Insertion d’image
\usepackage{array} : Une gestion des tableaux plus élaborée
\usepackage{mathpazo} : Une jolie police pour les formules mathématiques
\usepackage{makeidx} : Pour faire des index
\usepackage[francais]{babel} : La typographie française sans soucis

Cette liste en plus d’être non exhaustive est en perpétuelle évolution, en fonction de mes besoins.

Mon préambule est à votre disposition.

J’ai rajouté dans mon préambule un \pagestyle{empty} qui évite la numérotation des pages, un \pagestyle{plain} permet de le rétablir.

On peut remarquer aussi l’usage du package géometry qui permet de gérer les marges du documents avec la déclaration suivante :

\geometry{
a4paper, Le type de papier
tmargin=1cm, La marge en haut
bmargin, La marge en bas
rmargin=1cm, La marge à droite
lmargin, La marge gauche
headheight=0cm, L’entête
footskip, Le pied de page
}

Et voilà… il est un peu tôt pour parler de macros.

Le corps du document

Il commence à \begin{document} et s’achève à \end{document}.

Et c’est là que se trouve l’essentiel, non ?

Il est temps de passer aux bases du traitement de texte en \LaTeX.

Publié dans LaTeX. Étiquettes : . Leave a Comment »
%d blogueurs aiment cette page :