J'ai un souci avec un code qui fait exactement ce que j'en attends... mais qui produit plein de messages d'erreur, et j'aimerais bien comprendre pourquoi. J'ai besoin de tracer plusieurs courbes (ce que j'ai fait avec Ouvrir dans l'éditeur Overleaf
\documentclass[12pt,a4paper]{article} \usepackage{subfig} \usepackage{tikz} \usetikzlibrary{arrows,shapes,decorations.pathmorphing,calc,decorations.pathreplacing} \usepackage{todonotes} % markers for plot caption \newcommand{\rond}[2]{% \raisebox{-0.5ex}{% \tikzpicture \draw [draw=#1,fill=#1](0,0) circle (#2); \endtikzpicture }} \newcommand{\diam}[2]{% \raisebox{-0.5ex}{% \tikzpicture \node[draw=#1,fill=#1,scale=#2,diamond,draw]{}; %offset={-1ex}, \endtikzpicture }} \newcommand{\pentag}[2]{% \raisebox{-0.5ex}{% \tikzpicture \node[draw=#1,fill=#1,scale=#2,regular polygon,draw]{}; \endtikzpicture }} \newcommand{\carre}[2]{% \raisebox{-0.5ex}{% \tikzpicture[scale=#2] \node[draw=#1,fill=#1,scale=#2,regular polygon,regular polygon sides=4,draw]{}; \endtikzpicture }} \newcommand{\triL}[2]{% \raisebox{-0.5ex}{% \tikzpicture[scale=#2] \node[draw=#1,fill=#1,scale=#2,rotate=90,regular polygon,regular polygon sides=3,draw]{}; \endtikzpicture }} \newcommand{\triR}[2]{% \raisebox{-0.5ex}{% \tikzpicture[scale=#2] \node[draw=#1,fill=#1,scale=#2,rotate=-90,regular polygon,regular polygon sides=3,draw]{}; \endtikzpicture }} \newcommand{\triU}[2]{% \raisebox{-0.5ex}{% \tikzpicture[scale=#2] \node[draw=#1,fill=#1,scale=#2,regular polygon,regular polygon sides=3,draw]{}; \endtikzpicture }} \newcommand{\triD}[2]{% \raisebox{-0.5ex}{% \tikzpicture[scale=#2] \node[draw=#1,fill=#1,scale=#2,rotate=180,regular polygon,regular polygon sides=3,draw]{}; \endtikzpicture }} \begin{document} \begin{figure}[htbp] \centering \subfloat[(\rond{blue}{5pt}) compound A and (\diam{red}{0.8}) compound B]{\label{fig:subA}\missingfigure{Remplace la sous-figure a}} \subfloat[(\pentag{{rgb,255:red,0; green,0; blue,128}}{1}) compound C, (\carre{{rgb,255:red,0; green,102; blue,153}}{0.9}) compound D, (\triU{blue}{0.7}) compound E and (\rond{cyan}{5pt}) compound F]{\label{fig:subB}\missingfigure{Remplace la sous-figure b}} \subfloat[(\rond{{rgb,255:red,51; green,102; blue,0}}{5pt}) compound G, (\pentag{{rgb,255:red,51; green,204; blue,0}}{1}) compound H, (\carre{{rgb,255:red,102; green,204; blue,102}}{1}) compound I, (\triU{{rgb,255:red,102; green,255; blue,0}}{0.7}) compound J]{\label{fig:subC}\missingfigure{Remplace la sous-figure c}} \caption{Evolution of the reaction mixture composition during the course of a typical experiment} \end{figure} \end{document} Le paquetage
Désolé pour cet exemple qui n'est peut-être pas tout à fait minimal. Si on peut m'expliquer pourquoi ces erreurs sont générées (et accessoirement comment les éviter avec le même résultat) lors de l'inclusion de commandes à base de TikZ dans des « captions », je serais ravi, sinon je ferai avec puisque le résultat obtenu me satisfait. |
Je suppose que les illustrations réalisées avec Il faut donc que la légende courte, qui est par défaut identique à la légende longue, ne contienne pas de commandes Rappel : En utilisant Ouvrir dans l'éditeur Overleaf
\documentclass[12pt,a4paper]{article} \usepackage{subfig} \usepackage{tikz} \usetikzlibrary{arrows,shapes,decorations.pathmorphing,calc,decorations.pathreplacing} \usepackage{todonotes} % markers for plot caption \newcommand{\rond}[2]{% \raisebox{-0.5ex}{% \tikzpicture \draw [draw=#1,fill=#1](0,0) circle (#2); \endtikzpicture }} \newcommand{\diam}[2]{% \raisebox{-0.5ex}{% \tikzpicture \node[draw=#1,fill=#1,scale=#2,diamond,draw]{}; %offset={-1ex}, \endtikzpicture }} \newcommand{\pentag}[2]{% \raisebox{-0.5ex}{% \tikzpicture \node[draw=#1,fill=#1,scale=#2,regular polygon,draw]{}; \endtikzpicture }} \newcommand{\carre}[2]{% \raisebox{-0.5ex}{% \tikzpicture[scale=#2] \node[draw=#1,fill=#1,scale=#2,regular polygon,regular polygon sides=4,draw]{}; \endtikzpicture }} \newcommand{\triU}[2]{% \raisebox{-0.5ex}{% \tikzpicture[scale=#2] \node[draw=#1,fill=#1,scale=#2,regular polygon,regular polygon sides=3,draw]{}; \endtikzpicture }} \begin{document} \begin{figure}[htbp] \centering \subfloat[][(\rond{blue}{5pt}) compound A and (\diam{red}{0.8}) compound B]{\label{fig:subA}\missingfigure{Remplace la sous-figure a}} \subfloat[][(\pentag{{rgb,255:red,0; green,0; blue,128}}{1}) compound C, (\carre{{rgb,255:red,0; green,102; blue,153}}{0.9}) compound D, (\triU{blue}{0.7}) compound E and (\rond{cyan}{5pt}) compound F]{\label{fig:subB}\missingfigure{Remplace la sous-figure b}} \subfloat[][(\rond{{rgb,255:red,51; green,102; blue,0}}{5pt}) compound G, (\pentag{{rgb,255:red,51; green,204; blue,0}}{1}) compound H, (\carre{{rgb,255:red,102; green,204; blue,102}}{1}) compound I, (\triU{{rgb,255:red,102; green,255; blue,0}}{0.7}) compound J]{\label{fig:subC}\missingfigure{Remplace la sous-figure c}} \caption{Evolution of the reaction mixture composition during the course of a typical experiment} \end{figure} \end{document} Sans utiliser Ouvrir dans l'éditeur Overleaf
\documentclass[12pt,a4paper]{article} %\usepackage{subfig} \usepackage{tikz} \usetikzlibrary{arrows,shapes,decorations.pathmorphing,calc,decorations.pathreplacing} \usepackage{todonotes} % markers for plot caption \newcommand{\rond}[2]{% \raisebox{-0.5ex}{% \tikzpicture \draw [draw=#1,fill=#1](0,0) circle (#2); \endtikzpicture }} \newcommand{\diam}[2]{% \raisebox{-0.5ex}{% \tikzpicture \node[draw=#1,fill=#1,scale=#2,diamond,draw]{}; %offset={-1ex}, \endtikzpicture }} \begin{document} \begin{figure}[htbp] \centering \missingfigure{Remplace sous-figure a} \caption[]{(\rond{blue}{5pt}) compound A and (\diam{red}{0.8}) compound B} \label{fig:A} \end{figure} \end{document} EDIT Complément de réponse Après une petite recherche sur internet, je suis tombé sur cette question. Il est possible de garder les deux légendes identiques (la courte et la longue) contenant des éléments Ouvrir dans l'éditeur Overleaf
\documentclass[12pt,a4paper]{article} %\usepackage{subfig} \usepackage{tikz} \usetikzlibrary{arrows,shapes,decorations.pathmorphing,calc,decorations.pathreplacing} \usepackage{todonotes} % markers for plot caption \newcommand{\rond}[2]{% \raisebox{-0.5ex}{% \tikzpicture \draw [draw=#1,fill=#1](0,0) circle (#2); \endtikzpicture }} \newcommand{\diam}[2]{% \raisebox{-0.5ex}{% \tikzpicture \node[draw=#1,fill=#1,scale=#2,diamond,draw]{}; %offset={-1ex}, \endtikzpicture }} \begin{document} \listoffigures \begin{figure}[htbp] \centering \missingfigure{Remplace sous-figure a} \caption{(\protect\rond{blue}{5pt}) compound A and (\protect\diam{red}{0.8}) compound B} \label{fig:A} \end{figure} \end{document} Publiée 19 Jan '17, 14:37 jerome dequeker Pathe ♦♦ Merci pour ces explications. Je n'utilise quasiment jamais les légendes courtes et je n'avais pas connaissance de ce problème. J'essaierai de m'en souvenir pour une prochaine fois.
(19 Jan '17, 15:41)
DRI
Ah
(19 Jan '17, 16:21)
DRI
|
Ajoute une paire de crochets vides
[]
après chaque appel à\subfloat
pour avoir quelque chose du genre\subfloat[][(\rond{...
@jerome dequeker, Effectivement, il n'y a plus d'erreur, merci. Il faudra que je relise plus attentivement la notice de
subfig
. Si tu transformes le commentaire en réponse, je pourrais l'accepter.Mais par contre si on sépare en figures indépendantes (donc plus de
subfig
, ni de\subfloat
), le problème demeure.\begin{figure}[htbp]
\centering
\missingfigure{Remplace sous-figure a}
\caption{(\rond{blue}{5pt}) compound A and (\diam{red}{0.8}) compound B}
\label{fig:A}
\end{figure}
@DRI merci pour avoir remarqué que le problème persistait lorsque l'on n'utilise pas le package
subfig
, ça m'a aidé à trouver la raison du problème.Remarque générale : Pourquoi ne pas utiliser la légende fournie par
gnuplot
?@jerome dequeker, je prèfère utiliser la figure seule fournie par gnuplot et contrôler le titre ou la légende via LaTeX, ce qui m'a conduit à générer des marqueurs reproduisant ceux de gnuplot, mais je maîtrise cela maintenant !