LaTeX insérer des illustrations et triturer du texte

Rédigé par Bertrand Masson | Classé dans : LaTeX, PGF-Tikz

07
03 | 10

Voici une fiche qui te montre comment insérer des illustrations dans LaTeX. Attention cette fiche ne parle pas des flottants mais de \includegraphics du packages graphicx. Donc c'est juste une fiche qui te montre comment mettre des petits dessins leur faire subir des rotations, des agrandissements ou les rétrécir, mais pas de leur attribuer une légende, ni faire une table des illustrations. Ce sera pour une autre fiche. Comme on parle du package graphicx j'en profite pour évoquer les commandes \reflectbox, \scalebox, \resizebox et \rotatebox, qui permettent de triturer du texte.

Voici le fichier : illustration.pdf

Le source : illustration.tex

Mots clés : Aucun

Commentaires

Le 26 juin 2011 Manuel a dit :

#1

Hello, I really like your LaTeX stuff. I don't speak French but I like the examples. Can you tell me how you did the boxes at page 10 (LATEX et les boites)?

I also do LaTeX presentations, here's a tutorial in German:

http://bipede.de/Downloads/LaTeX-Kurs/Kurs-Folien_2011-05-24.pdf

Thank you very much
Manuel

Le 26 juin 2011 Bertrand Masson a dit :

#2

@Manuel :
Hello Manuel,

To make the boxes I use Tikz, with the options overlay and remember

Here is the code on slide 10


\begin{frame}[fragile]
\frametitle{\latex et les boites}
\onslide
\begin{center}
{\fontsize{45}{45}\selectfont Un petit} \includegraphics[scale=0.25]{gnuOrange}\, {\fontsize{45}{45}\selectfont gnu}
\end{center}


\onslidePour \latex tout est boite. \latex ne compose pas des mots avec des lettres mais manipule des boites qui contiennent des objets. Un peu comme les ouvriers typographes et leurs caractères en plomb.\par
\onslide
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)}]
\draw (1.15,6.8) rectangle (2.15,7.9);
\draw (2.15,6.8) rectangle (2.9,7.5);
\draw (2.9,6.8) rectangle (3.47,7.5);
\draw (3.47,6.5) rectangle (4.2,7.5);
\draw (4.2,6.8) rectangle (4.9,7.5);
\draw (4.9,6.8) rectangle (5.45,7.7);
\draw (5.45,6.8) rectangle (5.75,7.85);
\draw (5.75,6.8) rectangle (6.3,7.7);
\draw (6.3,6.8) rectangle (9.3,7.9);
\draw (9.3,6.5) rectangle (10.1,7.5);
\draw (10.1,6.8) rectangle (10.9,7.5);
\draw (10.9,6.8) rectangle (11.6,7.5);
\end{scope}
\end{tikzpicture}
\onslide
On a donc des boites qui contiennent des lettres.
\onslide
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)},draw=red]
\draw (1.15,6.8) rectangle (2.9,7.9);
\draw (3.47,6.25) rectangle (6.3,7.85);
\draw (9.3,6.25) rectangle (11.6,7.5);
\end{scope}
\end{tikzpicture}
\onslidePuis des boites de mots contenant des boites de lettres
\onslide
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)},draw=blue]
\draw (1.15,6.25) rectangle (11.6,7.9);
\end{scope}
\end{tikzpicture}
\onslideet enfin des boites de phrases contenant des boites de mots. Le logo gnu est aussi mis en boite.\par
\onslide
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)}]
\draw (1.15,6.8) circle (2pt);
\draw (2.15,6.8) circle (2pt);
\draw (2.9,6.8) circle (2pt);
\draw (3.47,6.8) circle (2pt);
\draw (4.2,6.8) circle (2pt);
\draw (4.9,6.8) circle (2pt);
\draw (5.45,6.8) circle (2pt);
\draw (5.75,6.8) circle (2pt);
\draw (6.3,6.8) circle (2pt);
\draw (9.3,6.8) circle (2pt);
\draw (10.1,6.8) circle (2pt);
\draw (10.9,6.8) circle (2pt);
\end{scope}
\end{tikzpicture}
\onslideChaque boite à une origine.\par
\onslide\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)},draw=red]
\draw (1.15,6.8) circle (2pt);
\draw (2.9,6.8) circle (2pt);
\draw (3.47,6.8) circle (2pt);
\draw (6.3,6.8) circle (2pt);
\end{scope}
\end{tikzpicture}
\onslide
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)},draw=blue]
\draw (1.15,6.8) circle (2pt);
\end{scope}
\end{tikzpicture}
\onslide
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)},draw=green,thick]
\draw (0,6.8) -- (12.8,6.8);
\end{scope}
\end{tikzpicture}
\onslide\noindent
\latex place cet origine sur une ligne appelée ligne de base. Tu peux remarquer que cette origine n'est pas toujours au coin en bas à gauche (lettres p et g).\par
\onslideLes boites \latex ont trois dimensions : une largeur, une hauteur et une profondeur qui correspond à ce qui se trouve sous la ligne de base. Dans notre exemple, toutes les boites lettres ont une profondeur nulle à l'exception du p et du g.
\end{frame}

Bertrand

Le 27 juin 2011 Manuel a dit :

#3

Thank you very much!

Le 27 juin 2011 Manuel a dit :

#4

Hello Bertrand, I tried to make the code working. I changed \latex to \LaTeX{} and removed some other costom code.

I also extracted the gno picture from your pdf.

But something is still wrong: the boxes are at the wrong place. What am I missing?

\documentclass[]{beamer}
\usepackage[french]{babel}
\usepackage{tikz}

\begin{document}
\begin{frame}[fragile]
\frametitle{\LaTeX{} et les boites}
\onslide
\begin{center}
{\fontsize{45}{45}\selectfont Un petit} \includegraphics[scale=0.25]{gnuOrange}\, {\fontsize{45}{45}\selectfont gnu}
\end{center}


\onslide \LaTeX{} tout est boite. \LaTeX{} ne compose pas des mots avec des lettres mais manipule des boites qui contiennent des objets. Un peu comme les ouvriers typographes et leurs caractères en plomb.\par
\onslide
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)}]
\draw (1.15,6.8) rectangle (2.15,7.9);
\draw (2.15,6.8) rectangle (2.9,7.5);
\draw (2.9,6.8) rectangle (3.47,7.5);
\draw (3.47,6.5) rectangle (4.2,7.5);
\draw (4.2,6.8) rectangle (4.9,7.5);
\draw (4.9,6.8) rectangle (5.45,7.7);
\draw (5.45,6.8) rectangle (5.75,7.85);
\draw (5.75,6.8) rectangle (6.3,7.7);
\draw (6.3,6.8) rectangle (9.3,7.9);
\draw (9.3,6.5) rectangle (10.1,7.5);
\draw (10.1,6.8) rectangle (10.9,7.5);
\draw (10.9,6.8) rectangle (11.6,7.5);
\end{scope}
\end{tikzpicture}
\onslide<1>
On a donc des boites qui contiennent des lettres.
\onslide<2>
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)},draw=red]
\draw (1.15,6.8) rectangle (2.9,7.9);
\draw (3.47,6.25) rectangle (6.3,7.85);
\draw (9.3,6.25) rectangle (11.6,7.5);
\end{scope}
\end{tikzpicture}
\onslide des boites de mots contenant des boites de lettres
\onslide<3>
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)},draw=blue]
\draw (1.15,6.25) rectangle (11.6,7.9);
\end{scope}
\end{tikzpicture}
\onslide enfin des boites de phrases contenant des boites de mots. Le logo gnu est aussi mis en boite.\par
\onslide<4>
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)}]
\draw (1.15,6.8) circle (2pt);
\draw (2.15,6.8) circle (2pt);
\draw (2.9,6.8) circle (2pt);
\draw (3.47,6.8) circle (2pt);
\draw (4.2,6.8) circle (2pt);
\draw (4.9,6.8) circle (2pt);
\draw (5.45,6.8) circle (2pt);
\draw (5.75,6.8) circle (2pt);
\draw (6.3,6.8) circle (2pt);
\draw (9.3,6.8) circle (2pt);
\draw (10.1,6.8) circle (2pt);
\draw (10.9,6.8) circle (2pt);
\end{scope}
\end{tikzpicture}
\onslide boite à une origine.\par
\onslide<5>
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)},draw=red]
\draw (1.15,6.8) circle (2pt);
\draw (2.9,6.8) circle (2pt);
\draw (3.47,6.8) circle (2pt);
\draw (6.3,6.8) circle (2pt);
\end{scope}
\end{tikzpicture}
\onslide<6>
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)},draw=blue]
\draw (1.15,6.8) circle (2pt);
\end{scope}
\end{tikzpicture}
\onslide<7>
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)},draw=green,thick]
\draw (0,6.8) -- (12.8,6.8);
\end{scope}
\end{tikzpicture}
\onslide<8>
\noindent
\LaTeX{} place cet origine sur une ligne appelée ligne de base. Tu peux remarquer que cette origine n'est pas toujours au coin en bas à gauche (lettres p et g).\par
\onslide boites \LaTeX{} ont trois dimensions : une largeur, une hauteur et une profondeur qui correspond à ce qui se trouve sous la ligne de base. Dans notre exemple, toutes les boites lettres ont une profondeur nulle à l'exception du p et du g.
\end{frame}

\end{document}

Le 27 juin 2011 Bertrand Masson a dit :

#5

@Manuel :
Hello Manuel,

My method is empirical.
There is certainly a way to retrieve the coordinates of an object on the page but I can not do that.

Here's how I did:
First I create a grid (grille in french) that allows me to place my items

\newcommand{\grille}{
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)}]
\draw[gray!50] (0,0) grid[step=2mm] (current page.north east);
\draw[red!50] (0,0) grid[step=1cm] (current page.north east);
\end{scope}
\end{tikzpicture}
}

Here is the code of my first compilation :

\documentclass[]{beamer}
\usepackage{tikz}

\newcommand{\grille}{
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)}]
\draw[gray!50] (0,0) grid[step=2mm] (current page.north east);
\draw[red!50] (0,0) grid[step=1cm] (current page.north east);
\end{scope}
\end{tikzpicture}
}

\begin{document}
\begin{frame}
\begin{center}
{\fontsize{45}{45}\selectfont Un petit} \includegraphics[scale=0.25]{gnuOrange}\, {\fontsize{45}{45}\selectfont gnu}
\end{center}

\grille
\end{frame}
\end{document}

Be careful when you are using tikz and overlay it takes two compilations for proper positioning
I count manually the coordinates of the frame on the screen.
The red squares are 1cm and the gray are 2mm
In this example (6.3,5.2) and (9.2,6.4)

I draw the framework

\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)}]
\draw (6.3,5.2) rectangle (9.2,6.4);
\end{scope}
\end{tikzpicture}

After two compilations, I adjust if necessary, and if it's good I remove the grid

The final code :

\documentclass[]{beamer}
\usepackage{tikz}

\newcommand{\grille}{
\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)}]
\draw[gray!50] (0,0) grid[step=2mm] (current page.north east);
\draw[red!50] (0,0) grid[step=1cm] (current page.north east);
\end{scope}
\end{tikzpicture}
}

\begin{document}
\begin{frame}

\begin{center}
{\fontsize{45}{45}\selectfont Un petit} \includegraphics[scale=0.25]{gnuOrange}\, {\fontsize{45}{45}\selectfont gnu}
\end{center}

\begin{tikzpicture}[overlay,remember picture]
\begin{scope}[shift={(current page.south west)}]
\draw (6.3,5.2) rectangle (9.2,6.4);
\end{scope}
\end{tikzpicture}

%\grille

\end{frame}
\end{document}

Bertrand

Le 27 juin 2011 Manuel a dit :

#6

I see - that is a lot of work. I was hoping that there is a 'automatic' way to do that. Can I use your slides (the box part) in a presentation?

Manuel

Le 27 juin 2011 Bertrand Masson a dit :

#7

@Manuel :
You can use my slides. I put the source file at the end of the article.

Bertrand

Fil des commentaires de cet article

Ecrire un commentaire




Quelle est la dernière lettre du mot nvik ? :