Circuitikz에 검은색 연결이 있는 색상 요소

Circuitikz에 검은색 연결이 있는 색상 요소

색상이 있는 요소(예: 파란색 커패시터)를 그리고 싶지만 해당 연결(끝점)의 색상을 검은색 점으로 유지하고 싶습니다. 사용되는 코드는 아래에 제공되어 끝점이 파란색이 되는 반면 나는 검은색을 원합니다. Circuitikz에서는 어떻게 할 수 있나요? 여기저기 찾아보았지만 이에 대한 도움을 찾을 수 없었으므로 도움을 주시면 감사하겠습니다.

\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}

답변1

글쎄요 --- circuitikz색상 관리가 상당히 버그가 있다는 점을 인정해야 합니다(그리고 방금 매뉴얼에서 누출된 부분을 발견했습니다. 수정하려고 노력하겠습니다). 그러나 일종의 "항상 검은색" 극을 정의할 수 있습니다. 이와 같이:

\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}

결과는 다음과 같습니다.

여기에 이미지 설명을 입력하세요

필요한 것이 이미 만들어진 회로의 극을 대체하는 것이라면 표준 극의 정의를 변경하면 됩니다.

\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}

여기에 이미지 설명을 입력하세요

답변2

설명서 57페이지부터

여기에 이미지 설명을 입력하세요

커패시터에 적용

여기에 이미지 설명을 입력하세요

\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}

답변3

극을 그리는 코드에 색상 설정을 추가할 수 있습니다. 이는 파일 pgfcircbipoles.tex의 명령에 정의되어 있습니다 \drawpoles. 이 코드 변경은 명령에 대한 검색 및 바꾸기 작업을 수행하는 xpatch명령을 제공하는 패키지를 사용하여 즉시 수행할 수 있습니다 .\xpatchcmd

아래 MWE에서 수정된 명령은 문서 내에서 변경할 수 있는 색상에 대한 \drawpoles새로운 명령을 사용합니다 . 회로 내에서 색상을 변경해야 하는 경우 \polecolor새 명령을 시작해야 합니다 .\draw

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}

결과:

여기에 이미지 설명을 입력하세요

이전 버전 circuitikz(0.9.1 이전)의 경우 패치는 다음과 같습니다.

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

관련 정보