Category ArchiveLaTeX

À la découvert d’un nouveau package \(\LaTeX\)

Quand je m’ennuie, j’aime bien traîner sur le site CTAN, où l’on peut découvrir de nombreux packages \(\LaTeX\). Et même si la plupart ne m’intéressent pas, de temps en temps, je tombe sur une pépite… Et c’est le cas aujourd’hui.

tikz-page.sty

C’est bien connu (de ma grand-mère), j’aime écrire des livres, même s’ils sont à public confidentiel la plupart du temps. Et c’est aussi bien connu (toujours par ma grand-mère) que je passe souvent beaucoup de temps à trouver une mise en page sympa.

C’est la raison pour laquelle cette extension a attiré mon attention. En effet, elle semble promettre une mise en page facilitée… et ça, c’est cool ! On peut notamment mettre des petites fioritures en marges comme dans l’exemple suivant:

Mise en page possible avec tikz-page.sty
\documentclass{article}
\usepackage{tikz-page}
\usepackage{lipsum}
\definecolor{halfgray}{gray}{0.55}
\newcommand\anglei{-45}
\newcommand\angleii{45}
\newcommand\angleiii{225}
\newcommand\angleiv{135}
\newcommand{\tikzpagelayout}{
\tpflip{
\coordinate (aux1) at ([yshift=-15pt]page.northeast);
\coordinate (aux2) at ([yshift=-410pt]page.northeast);
\coordinate (aux3) at ([xshift=-4.5cm]page.northeast);
\coordinate (aux4) at ([yshift=-150pt]page.northeast);
}{
\coordinate (aux1) at ([yshift=-15pt]page.northwest);
\coordinate (aux2) at ([yshift=-410pt]page.northwest);
\coordinate (aux3) at ([xshift=4.5cm]page.northwest);
\coordinate (aux4) at ([yshift=-150pt]page.northwest);
\renewcommand\anglei{-135}
\renewcommand\angleii{135}
\renewcommand\angleiii{-45}
\renewcommand\angleiv{45}
}
\begin{scope}[halfgray!40,line width=12pt,rounded corners=12pt]
\draw (aux1) -- coordinate (a) ++(\angleiii:5) -- ++(\anglei:5.1)
coordinate (b);
\draw[shorten <= -10pt] (aux3) -- (a) -- (aux1);
\draw[opacity=0.6,halfgray,shorten <= -10pt] (b) -- ++(\angleiii:2.2) -- ++(\anglei:2.2);
\end{scope}
\draw[halfgray,line width=8pt,rounded corners=8pt,shorten <= -10pt]
(aux4) -- ++(\angleiii:0.8) -- ++(\anglei:0.8);
\begin{scope}[halfgray!70,line width=6pt,rounded corners=8pt]
\draw[shorten <= -10pt] (aux2) -- ++(\angleiii:3) coordinate[pos=0.45]
(c) -- ++(\anglei:3.1);
\draw (aux2) -- (c) -- ++(\angleiv:2.5) -- ++(\angleii:2.5) -- ++(\anglei:2.5) coordinate[pos=0.3] (d);
\draw (d) -- +(\angleii:1);
\end{scope}
}
\pagestyle{plain}
\begin{document}
\lipsum
\end{document}

Vous imaginez bien qu’avec un peu d’imagination, on peut embellir nos documents plutôt facilement avec ce package ! Et vous, qu’en pensez-vous ?

Jusqu’à présent, j’utilisais le package eso-pic pour mettre en arrière plan des pages ce que je voulais, mais il se peut que j’utilise tikz-page la prochaine fois que je voudrais faire un document élégant…

Liste aléatoire en \(\LaTeX\)

Nous allons voir dans cet article une façon (parmi d’autres) de créer une liste aléatoire de n’importe quoi, et ce à l’aide du package pgffor.

Création d’une liste d’items

Après avoir fait appel à l’extension pgffor, on peut déclarer une liste ainsi:

\pgfmathdeclarerandomlist{<nom de la liste>}{%
{item1}%
{item2}%
{item3}%
...
{itemN}%
}

Par exemple, pour créer une liste de couleurs aléatoires:

\pgfmathdeclarerandomlist{MyColors}{%
{red}%
{magenta}%
{olive}%
{brown}%
{violet}%
{gray}%
{purple}%
{yellow}%
{orange}%
{cyan}%
{green}%
{blue}% 
}

Utilisation de la liste

Imaginons que l’on souhaite dessiner plusieurs disques de couleurs différentes dans un cercle. Alors, on pourra faire ainsi :

\clip (5,5) circle (5cm);
\foreach \i in {0,1,...,10}{
	\foreach \j in {0,1,...,10}{
		\pgfmathparse{10*rnd}\let\x\pgfmathresult
		\pgfmathparse{10*rnd}\let\y\pgfmathresult
		\pgfmathrandomitem{\RandomColor}{MyColors}
		\fill[\RandomColor] (\x,\y) circle (5mm);
	}
}

Le résultat est alors :

Plusieurs disques de couleurs aléatoires dans un cercle, créés avec \(\LaTeX\)

On peut même ajouter un effet aux disques pour un rendu peut-être plus esthétique:

Balles à couleurs aléatoires créées avec \(\LaTeX\)

Un fichier source complet est disponible pour les abonné.e.s de mathweb.fr sur cette page.

Créer des titres originaux sous \(\LaTeX\)

Par défaut, les titres de chapitres sous \(\LaTeX\) sont assez peu esthétiques, et je suis sûr que plus d’une fois, vous avez eu envie de les changer pour les rendre plus jolis.

De mon côté, j’aime créer, j’aime innover et j’aime bien créer des styles originaux pour les titres. Je vous en propose un ici.

Un exemple

Voici ce que je souhaite vous présenter:

Un style de titres \(\LaTeX\) original

Le principe est le suivant : le numéro du chapitre doit être écrit au centre et en relief par rapport aux autres numéros.

De quel packages avons-nous besoin?

J’utilise TiKZ pour la partie graphique (bien que PST soit aussi une bonne solution). Pour la programmation, elle est uniquement basée sur \(\TeX\). Quant à la partie modification de titre, je fais appel à l’extension titlesec.

Nous allons dans un premier temps compiler le document en entier, et à la fin du code source, nous allons inscrire dans un fichier auxiliaire le nombre de chapitres. Ainsi, la première compilation entraîne une erreur car le nombre de chapitres n’est pas encore défini.

De même, si on ajoute un chapitre à une compilation déjà effectuée, un message d’erreur s’affichera (du type divide by 0), mais ce n’est pas grave! Une autre compilation résoudra le problème.

Galerie des titres successifs

Le fichier source

Il est disponible uniquement aux abonné.e.s de ce site sur cette page.

Tangente et nombre dérivé

Voici ici un GIF que j’ai créé en LaTeX pour illustrer la notion de nombre dérivé.

Les sources : sur cette page

La démonstration d’Euclide du théorème de Pythagore

Le théorème de Pythagore, tout le monde en a déjà entendu parlé. Il y a plus de 100 démonstrations de ce théorème. J’avais envie de vous exposer la démonstration d’Euclide… mais sous forme de GIF (créé à l’aide de LaTeX). Alors, la voici…

La démonstration d'Euclide du théorème de Pythagore sous forme de GIF
Théorème de Pythagore : la démonstration d’Euclide

Les sources : sur cette page

Des packages \(\LaTeX\) certainement méconnus

Dans cet article, j’avais envie d’explorer CTAN afin d’y dénicher des extensions qui pourrait servir à mes chers visiteurs.

Des packages \(\LaTeX\) made in France

On pourrait penser que la création de packages (extensions) \(\LaTeX\) est réservée aux personnes étrangères à la France. En tout cas, c’est ce que je pensais quand j’ai débuté. Mais aujourd’hui, il en existe des bien sympathiques et pratiques et qui sont créés en France.

En voici quelques exemples.

Engendrer une feuille d’exercices aléatoires avec Python en \(\LaTeX\)

Combien de fois ai-je voulu générer automatiquement des exercices similaires (par exemple, de développement) ? Vous ne le savez pas, mais moi, je le sais : beaucoup trop !

Encore aujourd’hui, j’ai voulu générer une série de multiplications pour faire réviser ses tables une de mes élèves.

Comme je me suis mis à Python il n’y a pas longtemps, et comme dans la foulée je me suis aussi mis à PythonTeX, j’ai forcément pensé à tout ça pour faire ma feuille d’exercices (plutôt que d’inventer et de taper plus de 90 opérations).

Nous allons voir comment.

Mettre une croix dans une cellule de tableau en LaTeX

Les tableaux en \(\LaTeX\) peuvent être quelques fois une vraie galère.

Parmi les questions les plus problématiques, il y cette fameuse croix à mettre dans une cellule pour indiquer qu’il n’y a rien à l’intérieur.

Je vous propose une méthode pour y arriver.

Créer et insérer directement des graphiques 3D avec Pythontex sous LaTeX

La prise en main et l’installation de Pythontex peut s’avérer assez fastidieuse quand on s’y met. Par expérience, je peux vous dire que la tâche est encore plus difficile sous Ubuntu quand on est novice (et je le suis !). C’est une des raisons pour lesquelles je n’ai pas souhaité resté sous Ubuntu pour me remettre à Windows.

Une fois Pythontex installé, je pense qu’il est légitime de vouloir l’exploiter à fond, y compris pour faire des choses qu’avec \(\LaTeX\) seul il est difficile de faire. Parmi ces choses,il y a les graphiques, et plus particulièrement les graphiques 3D (car les courbes 2D, PGF sait le faire facilement).