Avec pdflatex, l'ECM ci-dessous fonctionne (tracé avec pgfplots d'une fonction et d'une de ses tangentes horizontales). En revanche, si je décommente la ligne qui charge le package witharrows, il déclenche une erreur (avec TeXLive 2023): Dimension too large dans l'environnement axis. Ensuite, si j'effectue (au moins) une des modifications suivantes, le chargement ne provoque plus d'erreur : retirer la ligne effectuant le tracé de f, retirer le smooth, changer la flèche en ->. Je ne comprends pas le lien entre ces différents comportements.

Question : comment faire pour charger witharrows avec ce tracé sans déclencher d'erreur ?

(À noter qu'une "rustine" pour l'instant est de remplacer smooth par samples=100, ce qui donne sur cet exemple un rendu satisfaisant... mais ça ne résout pas le problème.)

\documentclass{article}
\usepackage{tikz}
%\usepackage{witharrows}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[every axis plot post/.append style={domain=-1:3,smooth},
declare function={f(\x)=(-\x)^3+3*(\x)^2+2;},]
\addplot[mark=none]{f(x)};
\addplot[mark=none,<->] coordinates {(2-0.25,{f(2)}) (2+0.25,{f(2)})};
\end{axis}
\end{tikzpicture}
\end{document}

Posée 22 Aoû '23, 19:33

Mathieu2L's gravatar image

Mathieu2L
316314
Taux d'acceptation : 75%

Modifiée 23 Aoû '23, 13:52

Le problème est que l'extension witharrows utilise \usetikzlibrary{bending}. ECM : \documentclass{article} \RequirePackage{pgfplots} \RequirePackage{tikz} \usetikzlibrary{bending} \begin{document} \begin{tikzpicture} \begin{axis}[every axis plot post/.append style={domain=-1:3,smooth}, declare function={f(\x)=(-\x)^3+3*(\x)^2+2;},] \addplot[mark=none]{f(x)}; \addplot[mark=none,<->] coordinates {(2-0.25,{f(2)}) (2+0.25,{f(2)})}; \end{axis} \end{tikzpicture} \end{document}

(23 Aoû '23, 10:29) samcarter samcarter's gravatar image

Ok. Pour préciser et compléter ce nouvel ECM, après ajout de \pgfplotsset{compat=1.18} :

  • avec pdflatex, la compilation échoue ;
  • avec lualatex, la compilation est sans erreur ;
  • avec lualatex et en chargeant witharrows, la compilation est sans erreur mais le résultat est incorrect (la flèche est de la forme >->).

Ce graphique faisant partie d'un gros document actuellement compilé avec pdflatex, j'aimerais que ça fonctionne. S'agit-il selon vous d'un bug ? Si oui, le problème est-il à signaler auprès de pgfplots, bending ou witharrows?

(23 Aoû '23, 14:04) Mathieu2L Mathieu2L's gravatar image
1

@Mathieu2L "S'agit-il selon vous d'un bug ?" Oui, c'est peut etre un bug. "Si oui, le problème est-il à signaler auprès de pgfplots, bending ou witharrows?" C'est une très bonne question ! Je pense que witharrows est innocent.

(23 Aoû '23, 15:12) samcarter samcarter's gravatar image

Vu que le problème se pose avec witharrows uniquement du fait que witharrows charge \usetikzlibrary{bending} je pense que l'on peut considérer que witharrows est innocent ici. Ainsi, je respire mieux (je suis l'auteur de witharrows) !

(24 Aoû '23, 08:44) fpantigny fpantigny's gravatar image

@fpantigny Even if it is not the fault of witharrows, have you considered avoiding the problem by loading \usepgfmodule{bending} instead of the bending library and then use \tikzset{arrows=[flex]} to activate it only when you need it for your new environments? (the bending library is really just these two lines of code https://github.com/pgf-tikz/pgf/blob/master/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybending.code.tex )

(24 Aoû '23, 10:03) samcarter samcarter's gravatar image

@samcarter: Good suggestion. I have followed that suggestion and I have downloaded a new version (6.28b) on CTAN (bonne suggestion: j'ai suivi votre suggestion et j'ai déposé sur CTAN une nouvelle version de witharrows).

(24 Aoû '23, 13:59) fpantigny fpantigny's gravatar image

@fpantigny Merci !

(24 Aoû '23, 14:02) samcarter samcarter's gravatar image

Merci de vos retours rapides. Je vais faire une réponse pour résumer le post ; toutefois, je ne sais pas trop auprès de qui signaler le problème de fond ("incompatibilité" entre pgfplots et la bibliothèque bending) : un post sur stack exchange ?

@fpantigny: version 2.8b, non ? (c'est un détail...)

(28 Aoû '23, 11:26) Mathieu2L Mathieu2L's gravatar image

Oui, c'est 2.8b. Je pense qu'il faudrait signaler le problème sur https://github.com/pgf-tikz/pgf

(28 Aoû '23, 11:54) fpantigny fpantigny's gravatar image
Affichage de 5 parmi 9 Afficher 4 commentaire(s) en plus

J'obtiens une compilation sans l'erreur

  • en utilisant lualatex (c'est mon nouveau «standard» de compilation)
  • texlive 2022.20230122 / Ubuntu 22.04

et le préambule suivant :

\documentclass{article}
\RequirePackage{pgfplots}
\pgfplotsset{compat=1.18}
\RequirePackage{tikz}
\RequirePackage{witharrows}
...

La modification du niveau de compatibilité est suggérée dans le log lors de la compilation fautive.

Lien permanent

Publiée 22 Aoû '23, 20:36

GMR's gravatar image

GMR
265413
Taux d'acceptation : 6%

Modifiée 22 Aoû '23, 20:37

Avec pdflatex (ce que je vais préciser dans mon post) : l'ajout de \pgfplotsset{compat=1.18} ne change rien au problème initial, il y a toujours une erreur de compilation.

Avec lualatex : ce même ajout ne déclenche en effet plus d'erreur à la compilation mais le résultat n'est pas correct (j'obtiens une flèche de forme >-> sur mon tracé).

(23 Aoû '23, 13:51) Mathieu2L Mathieu2L'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.