
처음으로 tikz에서 일부 전기 회로를 만들고 다음 이미지를 복제해야 합니다.
그다지 복잡한 회로는 아닙니다. 이제 내가 지금까지 한 일은 다음과 같습니다.
\documentclass[10pt,a4paper]{minimal}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}
\tikzset{circuit declare symbol = ac source}
\tikzset{set ac source graphic = ac source IEC graphic}
\tikzset{
ac source IEC graphic/.style=
{
transform shape,
circuit symbol lines,
circuit symbol size = width 3 height 3,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\pgfpathmoveto{\pgfpoint{-0.8pt}{0pt}}
\pgfpathsine{\pgfpoint{0.4pt}{0.4pt}}
\pgfpathcosine{\pgfpoint{0.4pt}{-0.4pt}}
\pgfpathsine{\pgfpoint{0.4pt}{-0.4pt}}
\pgfpathcosine{\pgfpoint{0.4pt}{0.4pt}}
\pgfusepathqstroke
}
}
}
\begin{document}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [capacitor={info={$q$\ \ $-q$}}] ++(1, 0)
to [resistor={info ={$R$}}] ++(2, 0)
to [current direction' = {info = {$I$}}]++(0,-2)
to [inductor={info=$L$}] (0,-2)
to [ac source={info={$V$}}] (0,0);
\end{tikzpicture}
\end{document}
나는 지금까지 내가 무엇을 했는지 전혀 모르고, 단지 인터넷에서 무작위로 예제를 복사했습니다. 노드가 모두 연결될 때까지 계속 시도했기 때문에 노드가 엉망입니다. ++은 무슨 뜻인가요? 그리고 누군가 내 회로도를 위의 이미지와 비슷하게 수정하는 방법을 이해하도록 도와줄 수 있습니까? =)
답변1
내 솔루션은 다음과 같이 이어집니다.
암호:
\documentclass[10pt,a4paper]{minimal}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}
\tikzset{circuit declare symbol = ac source}
\tikzset{set ac source graphic = ac source IEC graphic}
\tikzset{
ac source IEC graphic/.style=
{
transform shape,
circuit symbol lines,
circuit symbol size = width 3 height 3,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\pgftransformrotate{90}
\pgfpathmoveto{\pgfpoint{-0.575pt}{0pt}}
\pgfpathsine{\pgfpoint{0.3pt}{0.3pt}}
\pgfpathcosine{\pgfpoint{0.3pt}{-0.3pt}}
\pgfpathsine{\pgfpoint{0.3pt}{-0.3pt}}
\pgfpathcosine{\pgfpoint{0.3pt}{0.3pt}}
\pgfusepathqstroke
}
}
}
\begin{document}
\scalebox{1.5}{
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [capacitor={info'={$C$}}] ++(1.5, 0)
to [resistor={info'={$R$}}] ++(2.5, 0)
to [current direction = {info' = {$I$}}]++(0,-3)
to [inductor={info'=$L$}] (0,-3)
to [ac source={info={$V$}}] (0,0);
\node[above right] at (0.75,0){$-q$};
\node[above left] at (0.75,0){$q$ \ };
\end{tikzpicture}
}
\end{document}
시작점부터 (0,0)
모든 요소가 순서대로 표시됩니다. 예를 들어 커패시터는 시작점부터 좌표까지 배치됩니다 (1.5,0)
(++의 의미). info
또는 키를 사용하여 정보를 표시할 수 있습니다 info'
. 일반적으로 이 기능을 '
사용하면 라벨의 위치나 전류의 방향을 반전시킬 수 있습니다. 이것이 바로 제 예에서 current direction
화살표가 아래를 가리키도록 사용한 이유입니다.
q
레이블 과 관련하여 -q
키를 사용하여 삽입하는 대신 info
간단한 노드를 사용하는 것을 선호했습니다. 한편으로는 와 를 소개할 수 있고 C
다른 info
한편으로는 q
및 의 더 나은 위치 지정이 가능합니다 -q
.
마지막으로 전압 소스의 기호를 회전하기 위해 코드에 추가 \pgftransformrotate{90}
하고 크기를 약간 줄였습니다.
답변2
@ClaudioFiandrino가 에 대한 질문에 답하기 위해 나를 이겼지 ++
:)
만 다른 개선 사항/설명이 있습니다. 아래 수정된 코드를 참조하세요.
\documentclass[10pt,a4paper]{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}
\tikzset{circuit declare symbol = ac source}
\tikzset{set ac source graphic = ac source IEC graphic}
\tikzset{
ac source IEC graphic/.style=
{
transform shape,
circuit symbol lines,
circuit symbol size = width 3 height 3,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\pgftransformresetnontranslations
\pgfpathmoveto{\pgfpoint{-0.8\tikzcircuitssizeunit}{0\tikzcircuitssizeunit}}
\pgfpathsine{\pgfpoint{0.4\tikzcircuitssizeunit}{0.4\tikzcircuitssizeunit}}
\pgfpathcosine{\pgfpoint{0.4\tikzcircuitssizeunit}{-0.4\tikzcircuitssizeunit}}
\pgfpathsine{\pgfpoint{0.4\tikzcircuitssizeunit}{-0.4\tikzcircuitssizeunit}}
\pgfpathcosine{\pgfpoint{0.4\tikzcircuitssizeunit}{0.4\tikzcircuitssizeunit}}
\pgfusepathqstroke
}
}
}
\begin{document}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [capacitor={info={$q$\ \ $-q$}}] ++(1, 0)
to [resistor={info ={$R$}}] ++(2, 0)
to [current direction = {info = {$I$}}]++(0,-2)
to [inductor={info=$L$}] (0,-2)
to [ac source={info={$V$}}] (0,0);
\end{tikzpicture}
\end{document}
출력은 다음과 같습니다.
첫째, 단위로 사용하는 것이 좋습니다 \tikzcircuitssizeunit
. 그러면 그림의 크기가 항상 올바르게 조정됩니다.
둘째, \pgftransformresetnontranslations
90도 회전에 대한 명시적인 사양을 갖는 것보다 더 일반적이며 추가 노력 없이 어떤 각도에서도 그래픽을 재사용할 수 있습니다.
마지막으로 AC 소스에 대해 다음과 같이 지적하고 싶습니다.질문(훌륭한 답변은 @Jake에게 있습니다.) 제가 게시한 것입니다(여기에 처음 게시한 것은 TeX.SE
... 아아 - 향수... :)
).