\documentclass{standalone} \usepackage{circuitikz} % Déclaration d'un bipôle circulaire avec G au centre \pgfcircdeclarebipole{}{}{generatorG}{\ctikzvalof{bipoles/length}}{% % Dessin du cercle \pgfpathcircle{\pgfpoint{0}{0}}{.4\pgf@circ@res@up} \pgfusepath{draw} % Lettre G \pgftext{\normalsize\bfseries G} } \begin{document} \begin{circuitikz} \draw (0,0) to[generatorG,l=Générateur] (3,0); \end{circuitikz} \end{document} J'essaye de définir un dipôle pour
|
|
Je n'ai pas la solution complète (notamment en matière de dimensions), mais je pense avoir une bonne base fonctionnelle. La documentation hélas est assez pauvre, et indique spécifiquement que c'est réservé aux hackers TeX au début du chapitre 9. Primo, je ne vois pas la commande Deuxio, l'ancienne commande Tertio, votre code (et le code d'exemple du manuel) comporte une commande avec Enfin, le manuel (mais c'est un peu caché, je l'admets, indique qu'il faut activer le nom du nouveau composant avec (pour l'exemple du manuel) : C'est ce dernier code (toujours à entourer de Voici donc un code adapté (et limité : les dimensions notamment sont à adapter selon votre usage pour obtenir quelque chose de valide, ici le G est bien trop grand et couvre le cercle, à peine visible. Et les lignes ne sont pas connectés, ce qui n'est pas très utile dans le cadre d'un circuit électrique. Mais la « base » est fonctionnelle. J'ai conservé le nom mechanicals pour le premier argument de la commande \documentclass{standalone} \usepackage{circuitikz} \makeatletter % Déclaration d'un bipôle circulaire avec G au centre \pgfcircdeclarebipolescaled{mechanicals} {} % extra anchors {\ctikzvalof{bipoles/damper/height}} % depth (under the path line) {generatorG} % name {\ctikzvalof{bipoles/damper/height}} % height (above the path line) {\ctikzvalof{bipoles/damper/width}} % width { % Dessin du cercle \pgfpathcircle{\pgfpoint{0}{0}}{1.15\pgf@circ@res@up} \pgfusepath{draw} % Lettre G \pgftext{\normalsize\bfseries G} } \pgfcirc@activate@bipole@simple{l}{generatorG} \makeatother \begin{document} \begin{circuitikz} \draw (0,0) to[generatorG,l=Générateur] (3,0); \end{circuitikz} \end{document} J'aurais volontiers joint le fichier d'image correspondant à la sortie (il est toujours agréable d'avoir une illustration) mais je suis accueilli par : Error uploading file. Please contact the site administrator. Thank you. 'ascii' codec can't encode characters in position 42-43: ordinal not in range(128). (pour un fichier PNG de moins de 40 ko). Edit : finalement, le moteur de génération du PDF intégré au site peut remplacer l'image jointe, donc ce n'est pas si gênant. Edit 2 : j'ai finalement une version plus propre au niveau des dimensions.J'ai aussi choisi de tracer le trait du cercle avec l'épaisseur qui est celle du dipole \documentclass{standalone} \usepackage{circuitikz} \makeatletter % Déclaration d'un bipôle circulaire avec G au centre \pgfcircdeclarebipolescaled{sources} {} % extra anchors {\ctikzvalof{bipoles/esource/height}} % depth (under the path line) {generatorG} % name {\ctikzvalof{bipoles/esource/height}} % height (above the path line) {\ctikzvalof{bipoles/esource/width}} % width { % Dessin du cercle \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfpathcircle{\pgfpoint{0}{0}}{\pgf@circ@res@up} \pgfusepath{draw} % Lettre G \pgftext{\normalsize\bfseries G} } \pgfcirc@activate@bipole@simple{l}{generatorG} \makeatother \begin{document} \begin{circuitikz} \draw (0,0) to[generatorG,l=Générateur] (3,0); \end{circuitikz} \end{document}
paragraphe 3.1 page 34 (doc)
Là je cherche à créer un dipôle que je peux utiliser en mode chemin (avec
Donc à priori il vaudrait mieux éviter le nom du composant qui termine par Comme vous utilisez @idefix L'auteur du package a confirmé qu'il y avait un bug dans le manuel avec l'oubli du nom "scaled" (la commande sans "scaled" existait auparavant mais il a changé le nom de la commande entre-temps). Voir https://github.com/circuitikz/circuitikz/issues/891. Pour le "shape" c'est lié aux nœuds il me semble. |
Où avez-vous trouvé la syntaxe de
\pgfcircdeclarebipole{}? Je ne l'ai trouvée citée qu'une fois dans la doc decircuitikz, et nulle part dans celle de TikZ.J'ai regardé la doc de circuitikz et les fichiers
pgfcircbipoles.texetpgfcirc.defines.texdansC:\texlive\2025\texmf-dist\tex\generic\circuitikz(une copie pour ne pas les altérer)Ce que j'imagine c'est que la forme (the shape) est bien définie (pas d'erreur générée) mais qu'elle n'est pas enregistrée dans l'espace de nom de circuitikz alors que je pensais que le
declarefaisait celaJ'ai essayé
\ctikzset{bipole/generatorG/shape=generatorG}ça ne fonctionne pas.