Dans le code suivant, il y a un conflit entre le package babel et l'utilisation de la commande "declare funtion" du package pgfplots. En effet le code se compile si on met en commentaire les lignes usepackage[french]{babel}, shorthandoff{:} et shorthandon{:}

Quelqu'un aurait il une idée? Voici le code :

\documentclass[11pt]{article}
%\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepackage{mathtools}
\usepackage{tikz}

\begin{document}

    % Désactivation temporaire des raccourcis de babel pour éviter les conflits
    \shorthandoff{:}

    \begin{tikzpicture}
        \begin{axis}[
            xlabel={$\varphi$},
            ylabel={$H_{dB}$},
            axis lines=middle,
            xmin=-100, xmax=10,
            ymin=-80, ymax=20,
            grid=both,
            legend pos=north west,
            ]
            % Déclaration des fonctions mathématiques
            \pgfplotsset{
                declare function={
                    K=1;
                    T=1;
                    gain(\x) = K/sqrt(1+(T*\x)^2);
                    gaindb(\x) = 20*log10(gain(\x));
                    phase(\x) = -atan(T*\x);
                }
            }
            \addplot[
            domain=0:1000,
            samples=1000,
            line width=1.5pt,
            blue,
            -latex,
            ] ({phase(x)}, {gaindb(x)});

            \addlegendentry{$T=1\, ;\, K=1$}

            % Ajout d'une ligne d'asymptote
            \addplot[dashed, red, line width=1.5pt] coordinates {(-90, -80) (-90, 20)};
        \end{axis}
    \end{tikzpicture}

    % Réactivation des raccourcis de babel
    \shorthandon{:}

\end{document}

Posée 18 Aoû, 00:03

zieprofyeo's gravatar image

zieprofyeo
432
Taux d'acceptation : 0%

Modifiée 18 Aoû, 09:30

touhami's gravatar image

touhami
10.1k410


La solution est d'ajouter \usetikzlibrary{babel} et de supprimer \shorthandon{:} et \shorthandoff{:}.

\documentclass[11pt]{article} 
\usepackage[french]{babel} 
\usepackage[T1]{fontenc} 
\usepackage{pgfplots} 
\pgfplotsset{compat=1.18} 
\usetikzlibrary{babel}
\usepackage{mathtools}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
xlabel={$\varphi$},
ylabel={$H_{dB}$},
axis lines=middle,
xmin=-100, xmax=10,
ymin=-80, ymax=20,
grid=both,
legend pos=north west,
]
% Déclaration des fonctions mathématiques
\pgfplotsset{
    declare function={
        K=1;
        T=1;
        gain(\x) = K/sqrt(1+(T*\x)^2);
        gaindb(\x) = 20*log10(gain(\x));
        phase(\x) = -atan(T*\x);
    }
}
\addplot[
domain=0:1000,
samples=1000,
line width=1.5pt,
blue,
-latex,
] ({phase(x)}, {gaindb(x)});

\addlegendentry{$T=1\, ;\, K=1$}

% Ajout d'une ligne d'asymptote
\addplot[dashed, red, line width=1.5pt] coordinates {(-90, -80) (-90, 20)};
\end{axis}
\end{tikzpicture}
\end{document}
Lien permanent

Publiée 18 Aoû, 09:31

touhami's gravatar image

touhami
10.1k410
Taux d'acceptation : 52%

Ma réponse sera un copier-coller de la documentation de french-babel (section 6).

Normalement, le nécessaire est fait par Babel pour que les caractères rendus actifs ne perturbent pas les autres extensions... mais il y a hélas des exceptions (tikz, xypic, xcolor, autonum, arabtex, cleveref par exemple). Il faut savoir que les caractères rendus actifs par une langue le restent dans tout le document , repasser en anglais par exemple ne désactive pas les ; : ! ? s’ils ont été rendus actifs par babel-french !

Il y a 2 solutions possibles :

  • utiliser dans le préambule \usetikzlibrary{babel} ;
  • ajouter la commande \NoAutoSpacing de french-babel après \begin{tikzpicture}.
Lien permanent

Publiée 18 Aoû, 09:40

Arathorn's gravatar image

Arathorn
2063
Taux d'acceptation : 15%

Je suis un peu lent à l'écriture donc le temps de poster ma réponse la 1re solution était donnée.

(18 Aoû, 09:42) Arathorn Arathorn's gravatar image

Merci beaucoup pour la promptitude. L'utilisation de usetikzlibrary{babel} permet de resoufre le problème.

Lien permanent

Publiée 18 Aoû, 11:59

zieprofyeo's gravatar image

zieprofyeo
432
Taux d'acceptation : 0%

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.