Circuitikz - 有欧洲电压源,但有美国电压指示器

Circuitikz - 有欧洲电压源,但有美国电压指示器

我目前有以下情况:

电路

现在问题出在电压指示器 Vc 上。我不希望它是箭头,而是一种+ Vc -符号。这可以通过使用 circuitikz 中的选项轻松实现american voltages。但我不想用圆圈 +/- 符号表示电压源。因此,如何+ Vc -在不使用美国电压选项的情况下实现这种符号?

代码

\documentclass{standalone}
\usepackage{graphics}
\usepackage{siunitx}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage[%
  europeanvoltages,
  europeancurrents,
  europeanresistors,
  americaninductors,
  smartlabels]{circuitikz}

\usetikzlibrary{calc}
\ctikzset{bipoles/thickness=1}
\ctikzset{bipoles/length=0.8cm}
\tikzstyle{every node}=[font=\small]
\tikzstyle{every path}=[line width=0.8pt,line cap=round,line join=round]

\begin{document}
\begin{circuitikz}[every info/.style={font=\footnotesize}]
  \ctikzset{current/distance=2}
  \draw (0,0)
      to[V,l=$V_s$] ++ (0,2.5)
      to[short] ++ (1.0,0) node[right] {\tiny 1}
      to[open,o-o,l=$q_1$] ++ (0.65,0)
      to[short] ++ (0.5,0)
      to[L,l_=$L$,i=$i_L$] ++ (1,0)
      to[short] ++ (0.5,0)
      to[R,l_=$R_L$] ++ (1,0)
      to[short] ++ (0.5,0)
      to[open,o-o,l=$q_2$] ++ (0.65,0) node[left] {\tiny 1}
      to[short] ++ (2.0,0)
      to[I,l=$I_\mathrm{load}$] ++ (0,-2.5)
      to[short,-*] ++ (-1.2,0) coordinate (B)
      to[short,-*] ++ (-0.9,0) coordinate (C)
      to[short,-*] ++ (-4.6,0) coordinate (D)
      to[short] ++ (-1.1,0)
    (B)
      to[C,l=$C$,v=\quad$V_C$,-*] ++ (0,2.5)
    (C)
      to[short,-o] ++ (0,2.1) node[right] {\tiny 0}
      to[short] ++ (-0.55,0.4)
    (D)
      to[short,-o] ++ (0,2.1) node[left] {\tiny 0}
      to[short] ++ (0.55,0.4)
  ;
\end{circuitikz}
\end{document}

答案1

添加

\ctikzset{v/.append style={/tikz/american voltages}}

你的序言,你得到

在此处输入图片描述

答案2

解决这个问题的一种方法是将电路分成两个 \draw-macros。您也可以通过将电压源全局重新定义为美式来实现。这是我的建议:

\documentclass{standalone}
\usepackage{graphics}
\usepackage{siunitx}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage[%
  europeanvoltages,
  europeancurrents,
  europeanresistors,
  americaninductors,
  smartlabels]{circuitikz}
\pgfplotsset{compat=1.7}
\usetikzlibrary{calc}
\ctikzset{bipoles/thickness=1}
\ctikzset{bipoles/length=0.8cm}
\tikzstyle{every node}=[font=\small]
\tikzstyle{every path}=[line width=0.8pt,line cap=round,line join=round]

\begin{document}
\begin{circuitikz}[every info/.style={font=\footnotesize}]
  \ctikzset{current/distance=2}
  \draw (0,0)
      to[V,l=$V_s$] ++ (0,2.5)
      to[short] ++ (1.0,0) node[right] {\tiny 1}
      to[open,o-o,l=$q_1$] ++ (0.65,0)
      to[short] ++ (0.5,0)
      to[L,l_=$L$,i=$i_L$] ++ (1,0)
      to[short] ++ (0.5,0)
      to[R,l_=$R_L$] ++ (1,0)
      to[short] ++ (0.5,0)
      to[open,o-o,l=$q_2$] ++ (0.65,0) node[left] {\tiny 1}
      to[short] ++ (2.0,0)
      to[I,l=$I_\mathrm{load}$] ++ (0,-2.5)
      to[short,-*] ++ (-1.2,0) coordinate (B)
      to[short,-*] ++ (-0.9,0) coordinate (C)
      to[short,-*] ++ (-4.6,0) coordinate (D)
      to[short] ++ (-1.1,0) (B);
   \draw[american] (B)       
      to[C,l=$C$,v=\quad$V_C$,-*] ++ (0,2.5)
    (C)
      to[short,-o] ++ (0,2.1) node[right] {\tiny 0}
      to[short] ++ (-0.55,0.4)
    (D)
      to[short,-o] ++ (0,2.1) node[left] {\tiny 0}
      to[short] ++ (0.55,0.4);
\end{circuitikz}
\end{document}

相关内容