我一直在努力把这些字母a、b和C在这个电路上,就在它们的右侧,而不是上方或下方。问题是,如果我将代码更改为位于侧面,它将放置在电线上,就像这样:
这是我正在使用的代码:
\documentclass[border=10pt]{standalone}
\usepackage{tikz, tkz-euclide}
\usepackage[american]{circuitikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) to[sV] (0,-2) to[short, -o] node[right]{$c$} (3,-2);
\draw (0,0) to[sV] (0,2) to[short, -o] node[right]{$a$} (3,2);
\draw (0,0) to[sV, -o] node[right]{$b$} (3,0);
\end{tikzpicture}
\end{document}
我不知道还能做什么,希望得到一点帮助;)
答案1
您正在使用类似这样的内容:
(coord1) to[...] node[...] {contents} (coord2)
这将从 到 绘制一个路径组件,(coord1)
并将(coord2)
指定节点放置在此子路径的某个位置,默认情况下位于pos=0.5
(即中间;midway
是 的同义词pos=0.5
)。通常,pos=0
表示“子路径的起点”,pos=1
表示“子路径的终点”,其他值是插值的。
在您的示例中,positionpos=0
产生了让我有些惊讶的结果,但它使用了选项中的sV
和short
键,这当然解释了这一点 — 抱歉,我没有使用过。话虽如此,在所有三种情况下,这似乎是您要寻找的位置:circuitikz
to
circuitikz
pos=1
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usepackage[american]{circuitikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) to[sV] (0,-2) to[short, -o] node[pos=1, right]{$c$} (3,-2);
\draw (0,0) to[sV] (0,2) to[short, -o] node[pos=1, right]{$a$} (3,2);
\draw (0,0) to[sV, -o] node[pos=1, right]{$b$} (3,0);
\end{tikzpicture}
\end{document}
为了获得更好的输出,我建议使用来微调标签位置,以outer xsep=0.7ex
调整水平位置,并anchor=mid west
为了更好地垂直定位,特别是b
,在我看来:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usepackage[american]{circuitikz}
\begin{document}
\begin{tikzpicture}[outer xsep=0.7ex]
\draw (0,0) to[sV] (0,-2) to[short, -o] node[pos=1, anchor=mid west]{$c$} (3,-2);
\draw (0,0) to[sV] (0,2) to[short, -o] node[pos=1, anchor=mid west]{$a$} (3,2);
\draw (0,0) to[sV, -o] node[pos=1, anchor=mid west]{$b$} (3,0);
\end{tikzpicture}
\end{document}
答案2
这是其中一种方法。我使用\coordinate
来表示右下角的连接器,只是为了稍微减少噪音。最后,我\node
使用 选项将 放置在所述坐标处,并为其添加一个不同的标签[yshift]
。括号()
引用坐标并防止引入新的坐标。当然,您可以在此处使用数学模式:$c-label$
。
您也可以直接操作数值,这更多取决于个人喜好。您还可以使用\usetikzlibrary{positioning}
,它允许相对定位。
简而言之,您可以将任何 tikz 命令与此电路库一起使用。请参阅 pgf 手册以了解更多选择。
\documentclass[border=10pt]{standalone}
\usepackage{tikz}%, tkz-euclide}% not needed for this purpose
\usepackage[american]{circuitikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) to[sV] (0,-2) to[short, -o] node[right]{$c$} (3,-2);
\draw (0,0) to[sV] (0,2) to[short, -o] node[right]{$a$} (3,2);
\draw (0,0) to[sV, -o] node[right]{$b$} (3,0);
\end{tikzpicture}
\tikz {% one way to do it
\coordinate (c) at (3, -2);% coordinates name is "c"
\draw (0,0) to[sV] (0,-2) to[short, -o] (c);%(c) references coordinate c
\node [yshift=3mm] at (c) {c-label};% put a lable above, named "c-label"
}
\end{document}