Ben ça alors ! Alors que j'essaie d'illustrer avec TikZ ma réponse sur l'impression de deux A5 sur un A4, ce dernier ne compile plus dès lors que deux instructions \filldraw se suivent !

Voici un ECM :

Ouvrir dans l'éditeur Overleaf
\documentclass[tikz, border = 2 mm]{standalone}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usetikzlibrary{calc}
\usepackage[light, largesmallcaps]{kpfonts}
\begin{document}
\begin{tikz}
    \filldraw [red] (0, 3) rectangle (1.4, 5) ;
    % \filldraw [yellow] (0, 0) rectangle (2.9, 2.1) ;
\end{tikz}
\end{document}

Si je décommente la ligne contenant \filldraw [yellow], ça ne compile plus !

J'ai ensuite tenté de ne compiler que cette ligne (donc en commentant la précédente) et la compilation se déroule sans problème.

Mais pourquoi ? Que se passe-t-il donc ? J'ai tenté une compilation en ligne : elle fut tout aussi infructueuse.

Posée 20 Avr '18, 20:33

Pathe's gravatar image

Pathe ♦♦
7.4k28196245
Taux d'acceptation : 55%

Modifiée 20 Avr '18, 20:34


Trouvé ! J'avais fait une erreur, et écrit \begin{tikz} au lieu de \begin{tikzpicture}.

Cet ECM compile parfaitement :

Ouvrir dans l'éditeur Overleaf
\documentclass[tikz, border = 2 mm]{standalone}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usetikzlibrary{calc}
\usepackage[light, largesmallcaps]{kpfonts}
\begin{document}
\begin{tikzpicture}
    \filldraw[red] (0, 3) rectangle (1.4, 5) ;
    \filldraw[yellow] (0, 0) rectangle (2.9, 2.1) ;
\end{tikzpicture}
\end{document}

Avouez que c'est spécieux : tikz ou tikzpicture, quand on précisément on dessine une picture avec TikZ, on n'y pense pas forcément.

De la rigueur, de la rigueur !

Lien permanent

Publiée 20 Avr '18, 20:50

Pathe's gravatar image

Pathe ♦♦
7.4k28196245
Taux d'acceptation : 55%

Une courte explication sur l'origine de l'erreur :

L’environnement tikz n’existe pas, mais il existe (par coïncidence) une macro du même nom . Elle peut être utilisé avec \tikz{tikz code} .

Intérieurement, un environnement LaTeX, par exemple :

Ouvrir dans l'éditeur Overleaf
\begin{foo}
abc
\end{foo}

est approximativement le même que :

Ouvrir dans l'éditeur Overleaf
\begingroup
\foo 
some text here 
\relax
\endgroup

Cela signifie que votre exemple est approximativement le même que :

Ouvrir dans l'éditeur Overleaf
\documentclass[tikz,boarder=6.626]{standalone}

\begin{document}

\begingroup
\tikz 
\filldraw [red] (0, 3) rectangle (1.4, 5) ;
\relax
\endgroup

\filldraw [yellow] (0, 0) rectangle (2.9, 2.1) ;

\end{document}

Le deuxième \filldraw ne fonctionne pas car les {} autour de l'argument de \tikz sont manquants (tout comme 1^10 est incorrect mais doit être 1^{10}).

Lien permanent

Publiée 15 Jan '19, 22:19

samcarter's gravatar image

samcarter
8.2k2817
Taux d'acceptation : 57%

Modifiée 12 Fév '19, 04:24

Pathe's gravatar image

Pathe ♦♦
7.4k28196245

@samcarter pourriez-vous s'il vous plait expliquer qu'est ce qu'elle fait la commande \relax et d'où vient-elle ?

(15 Jan '19, 23:24) touhami touhami's gravatar image

@touhami La commande \relax fait rien. Normalement on était \endfoo mais parce-que \endtikz n'existe pas, \relax est utilisé. Consultez https://tex.stackexchange.com/a/7313/36296 pour plus d'information.

(16 Jan '19, 00:36) samcarter samcarter's gravatar image

On peut aussi consulter cette réponse fastidieuse ;-)

(16 Jan '19, 01:47) touhami touhami's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.