LaTeXとTikZを使用した配線図

LaTeXでは、簡単な電気回路を描く必要がある場合があります。 以下では、LaTeX自体を使用するサードパーティソフトウェアを使用せずにこれを行う方法について説明します。 以下に書かれているのは、TikZのようなLaTeX用のベクター作成ツールにすでに精通している人向けです。 それ以外の場合は、最初にTikZに慣れる必要があります。 ロシア語のいくつかの情報がここにあります 。 すでにTikZに慣れている人-猫の下を参照してください。 LaTeXでスキームを描画するこれらの方法は、論文を書くプロセスで使用しました。



これは、LaTeXを使用して描画できる図です。







回路ライブラリを備えたTikZ



回路のライブラリを使用して、電気回路を描画します。 \ usetikzlibraryコマンドを使用して、ドキュメントのプリアンブルで接続する必要がありますさらに、tikzpictureを環境パラメーターとして指定する必要があります

回路ee IEC。



\usetikzlibrary{circuits} \usetikzlibrary{circuits.ee} \usetikzlibrary{circuits.ee.IEC} \usetikzlibrary{circuits.logic.IEC}
      
      







このライブラリのスキーマ要素は特別なタイプのノードであり、\ nodeコマンドで通常のTikZノードとして定義されます。 ここでは、中括弧で指定されたノードテキストがラジオ要素に対して常に空であることに注意する必要があります。 参照の指定と額面の値は、パラメーター情報として角かっこで入力されます。 ポイントアップパラメーターはコンポーネントを90度回転させ、ポイントダウンパラメーターは270度回転させます。



 \node (R) [resistor={info={$R$}}] at (2,2) {}; %   \node (C1) at (3,0) [point up,capacitor={info = $C_1$, info'= 100 }] {}; % 
      
      





すべてのコンポーネントの完全なリストは、TikZのドキュメントで入手できます。

回路ノードは、塗りつぶされた円を描く特別な接点ノードによって定義されます。



 \node (p2) [contact] at (6,-2) {}; %    x=6, y=-2
      
      





要素間のワイヤは、TikZで通常どおり/ drawコマンドで設定されます。 コマンドによって直線の線が引かれます



 \draw (R1) -- (C1);
      
      







そして、コマンドで90度の角度でワイヤーが描かれます:



 \draw (R1) |- (C1);
      
      







または

 \draw (R1) -| (C1);
      
      







違いは、最初のケースではワイヤが最初に垂直に、次に水平に、2番目のケースではワイヤが逆になることです。



すべてのパラメーターは、ワイヤに適用できます(矢印、線の太さ、および通常の軌道。たとえば、矢印のある太いワイヤ:

 \draw [thick,->] (R1) -| (C1);
      
      







スキームは任意のTikZグラフィックスと組み合わせて、たとえばスキームにチャートを配置できます。



次に、コメントのある小さな例を考えてみましょう。



 \documentclass[12pt]{article} \usepackage{mathtext} \usepackage[T2A]{fontenc} \usepackage[koi8-r]{inputenc} \usepackage[russian]{babel} \usepackage[pdftex]{graphics} \usepackage{tikz} \usetikzlibrary{circuits} %  ,  \usetikzlibrary{circuits.ee} %    \usetikzlibrary{circuits.ee.IEC} \usetikzlibrary{arrows} %     \usetikzlibrary{patterns} %    \begin{document} - RLC- \begin{figure}[!h] \begin{center} \begin{tikzpicture}[circuit ee IEC] %   circuit ee IEC \node (in) at (0,0) [contact] {}; %  -  \node (L1) at (1,0) [inductor={info = $L_1$, info'= 47 }] {}; %  - % info -    , info' -  \node (C1) at (3,0) [capacitor={info = $C_1$, info'= 100 }] {}; %  \node (R) at (5,0) [resistor={info = $R_1$, info'= 2 }] {}; %  \node (out) at (6,0) [contact] {}; %   \draw (in) -- (L1) -- (C1) -- (R) -- (out); %  \end{tikzpicture} \end{center} \caption{  } \end{figure} \begin{figure}[!h] \begin{center} \begin{tikzpicture}[circuit ee IEC] \node (R) [resistor={info={$R$}}] at (2,2) {}; %   \node (p1) [contact] at (3,2) {}; %    R   \node (C) [point up, capacitor={info={$C$}}] at (3,1) {}; %    90  \node (p2) [contact] at (3,0) {}; %        \draw [-latex] (p1) -- (5,2); %   , R   \draw [latex-] (0,2) -- (R); \draw (R) -- (p1) -- (C) -- (p2); %   \draw [latex-] (0,0) -- (p2); \draw [-latex] (p2) -- (5,0); \node at (0,1) {}; %    \node at (5,1) {}; %    %       \draw[xshift=60mm,-latex] (0,0) -- (4,0) node [anchor=west] {$\omega$}; %   \draw[xshift=60mm,-latex] (0,0) -- (0,3) node [anchor=south] {$K(\omega)$}; %  Y \draw [very thick,xshift=60mm, y=2cm, x=1cm, declare function={K(\w)=1/sqrt(1+\w^2);}] plot [domain=0:3, samples=10, smooth] (\x,{K(\x)}); %   \end{tikzpicture} \end{center} \caption{RC -    } \end{figure} \end{document}
      
      







結果は次のようになります。











Circuitikzパッケージ



circuitikzパッケージは、cirtuitsライブラリをさらに発展させたものです。 パッケージには、受動部品、トランジスタ、ダイオード、サイリスタ、論理ゲート、変圧器など、かなり多くのコンポーネントが含まれています。 circuitikzパッケージは、回路ライブラリと互換性がありません。 一緒に使用することはできません。 パッケージのドキュメントはここからダウンロードできます。



circuitikzパッケージは、次のようにプリアンブルで接続されます。



 \usepackage[europeanresistors,americaninductors]{circuitikz}
      
      





このようなパラメーターを使用すると、GOSTに最も近いUGOが取得されます。



パッケージは、回路を配置する特別な環境を定義します。

 \begin{circuitikz} \end{circuitikz}
      
      







この環境をtikzpicture内に配置する必要はありません。



描画スキームのイデオロギーは、回路ライブラリとは異なります。 コンポーネントはノードではなく、パスです。 単一のコンポーネントを配置するには、/ drawコマンドでパスを作成する必要があります。 コンポーネントの回転は、パスの方向によって実行されます。 例として、サイリスタ位相調整器の回路を考えます。



 \begin{circuitikz} \draw (-1,0) to [sV,l=$U_c$] (-1,2) %    to [R, l=$R_$,i>_=$I_$] (2,2) %     to [Ty,l={VS},*-,n=VS] (2,0); %  \draw (VS.G) to [R,mirror,l=$R_$,i<_=$I_$] ++(4,0) |- (2,2); \draw (VS.cathode) |- (-1,0); \end{circuitikz}
      
      





結果は次のとおりです。







結論



LaTeXで回路を描画するには、TikZの回路ライブラリまたはcircuitikzパッケージを使用できます。 後者のパッケージは、半導体部品で複雑な回路を描く場合にのみお勧めします。 私は通常、回路ライブラリを使用することを好みます。 これらの各メソッドを使用して作成されたスキームは、LaTeXでは異質ではありません;ドキュメントの残りの部分と同じフォントと線のスタイルが使用されます。 また、すべてのイラストがドキュメントに埋め込まれ、すべてが単一のファイルに保存されます。



短所は、大規模なスキームではドキュメントのコンパイルが遅くなることです。コンパイルされるたびに再レンダリングされるためです。 また、TikZツールを使用してダイアグラムを描画するには、ビジュアルエディターを使用するよりも時間がかかります。



リソース:

  1. TikZおよびcircuitikzを使用して作成された回路のその他の例: www.texample.net/tikz/examples/area/electrical-engineering
  2. Circuittikzドキュメント: texdoc.net/show.php?pkg=circuitikz
  3. 電気回路を描くための無料ソフトウェアのリスト: https : //en.wikipedia.org/wiki/Wikipedia : WikiProject_Electronics / Programs



All Articles