색상이 있는 요소(예: 파란색 커패시터)를 그리고 싶지만 해당 연결(끝점)의 색상을 검은색 점으로 유지하고 싶습니다. 사용되는 코드는 아래에 제공되어 끝점이 파란색이 되는 반면 나는 검은색을 원합니다. 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]}{}{}