Elemento coloreado con conexiones negras en circuito.

Elemento coloreado con conexiones negras en circuito.

Quiero dibujar un elemento coloreado (por ejemplo, un condensador azul) pero quiero mantener el color de sus conexiones (puntos finales) como puntos negros. El código que se utiliza se proporciona a continuación, lo que da como resultado que los puntos finales sean azules, mientras que yo los quiero negros. ¿Cómo se puede hacer en circuitoikz? Agradecería su ayuda ya que he estado buscando por todas partes pero no pude encontrar ninguna ayuda al respecto.

\begin{document}
\usepackage{circuitikz}
\begin{center}
\begin{circuitikz} 
  \draw(0,0) to [C,l_=$C$,*-*,color=blue](0,2);
\end{circuitikz}
\end{center}
\end{document}

Respuesta1

Bueno, bueno --- tengo que admitir que la circuitikzgestión del color tiene bastantes fallos (y acabo de notar una fuga en el manual, que intentaré corregir), pero se puede definir una especie de polos "siempre negros" como esto:

\documentclass[border=10pt]{standalone}
\usepackage[RPvoltages]{circuitikz}
% this is what the OP asked for
% notice that the manual is buggy
% always black pole styles
\tikzset{bcirc/.style={circ, color=black}}
\ctikzset{b-b/.style = {bipole nodes={bcirc}{bcirc}}} 
% for fun
\tikzset{gcirc/.style={circ, color=green}, 
        rsquare/.style={osquarepole, fill=yellow,
        % you must use the circuitikz explicitly here
        circuitikz/color=blue}}
\ctikzset{c-c/.style = {bipole nodes={gcirc}{rsquare}}}
\begin{document}
\begin{circuitikz} 
    \draw[](0,0) to [C,l_=$C$, color=blue, b-b] ++ (0,2);
    \draw[color=blue](2,0) to [C,l_=$C$, b-b] ++ (0,2);
    % for fun
    \draw[](4,0) to [C,l_=$C$, color=red, c-c] ++ (0,2);
\end{circuitikz}
\end{document}

lo que resulta en:

ingrese la descripción de la imagen aquí

Si lo que necesitas es reemplazar los polos en un circuito ya hecho, puedes simplemente cambiar la definición de los polos estándar:

\documentclass[border=10pt]{standalone}
\usepackage[RPvoltages]{circuitikz}
% this is what the OP asked for
% notice that the manual is buggy
% always black pole styles
\tikzset{bcirc/.style={circ, color=black}}
\ctikzset{*-*/.style = {bipole nodes={bcirc}{bcirc}}}
\ctikzset{-*/.style = {bipole nodes={none}{bcirc}}}
\ctikzset{*-/.style = {bipole nodes={bcirc}{none}}}
\begin{document}
\begin{circuitikz}
    \draw[](0,0) to [C,l_=$C$, color=blue, *-*] ++ (0,2);
    \draw[color=blue](2,0) to [C,l_=$C$, *-] ++ (0,2);
    \draw[](4,0) to [C,l_=$C$, color=red, -*] ++ (0,2);
\end{circuitikz}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

De la página 57 del manual.

ingrese la descripción de la imagen aquí

Aplicando al condensador

ingrese la descripción de la imagen aquí

\documentclass{standalone}
\usepackage[american,cuteinductors]{circuitikz}
\usetikzlibrary{shapes,arrows,circuits,calc,babel}
\usepackage{pgfplots}

\tikzset{
    % R/.append style={color=red},
    C/.append style={color=blue},
    % battery1/.append style={color=green},
}

\begin{document}
\begin{tikzpicture}[transform shape, scale=1.0,thick]

\draw (0,0)node[circ]{} to [C = $C$] (0,2)node[circ]{};

\end{tikzpicture}  
\end{document}

Respuesta3

Puede agregar una configuración de color al código que dibuja los polos. Esto se define en el archivo pgfcircbipoles.tex, en el comando \drawpoles. Se puede cambiar este código sobre la marcha utilizando el xpatchpaquete, que proporciona el comando \xpatchcmdque realiza una acción de búsqueda y reemplazo en un comando.

En el MWE a continuación, el comando modificado \drawpolesutiliza un nuevo comando \polecolorpara el color, que se puede cambiar dentro del documento. Tenga en cuenta que esto requiere iniciar un nuevo \drawcomando si es necesario cambiar el color dentro de un circuito.

MWE:

\documentclass{article}
\usepackage{circuitikz}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\drawpoles}{(\tikztostart) node[\pgf@circ@temp]}{(\tikztostart) node[\pgf@circ@temp,color=\polecolor]}{}{}
\xpatchcmd{\drawpoles}{(\tikztotarget) node[\pgf@circ@temp]}{(\tikztotarget) node[\pgf@circ@temp,color=\polecolor]}{}{}
\def\polecolor{black}
\makeatother

\begin{document}
\begin{center}
\begin{circuitikz}
  \draw(0,0) to [capacitor,l_=$C$,*-*,color=blue](0,2);
  \def\polecolor{green}
  \draw(0,0) -- (2,0) to [capacitor,l_=$C$,*-*,color=blue](2,2) -- (0,2);
\end{circuitikz}


\end{center}
\end{document}

Resultado:

ingrese la descripción de la imagen aquí

Para versiones anteriores circuitikz(anteriores a 0.9.1), el parche es el siguiente:

\xpatchcmd{\drawpoles}{(\tikztostart) node[circ]}{(\tikztostart) node[circ,color=\polecolor]}{}{}
\xpatchcmd{\drawpoles}{(\tikztotarget) node[circ]}{(\tikztotarget) node[circ,color=\polecolor]}{}{}

información relacionada