这是一个简短的可编译示例
\documentclass{article}
\usepackage{tikz}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw node[ground]{} to [short,*-] (0,0) to [C] (0,2) to [short,-*] (0,2);
\node[xshift=1.75cm](0,0){$ \leftarrow $ Start ground here};
\end{circuitikz}
\end{document}
产生
问题是:如何在标记点处绘制第一条地面线?CircuiTikZ 文档因为节点ground
没有在那个精确的位置定义锚点。
答案1
虽然我怀疑这是一种XY问题,不,目前没有规定无尾地面符号。不过,定义一个非常简单:
\documentclass{article}
\usepackage[RPvoltages]{circuitikz}
\makeatletter
\pgf@circ@declareground{myground}{0.6}{0.4}{
\pgfsetlinewidth{\ctikzvalof{monopoles/ground/thickness}\pgfstartlinewidth}
\pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{0pt}}
\pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{0pt}}
\pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-0.2\pgf@circ@res@step}}
\pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-0.2\pgf@circ@res@step}}
\pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-0.4\pgf@circ@res@step}}
\pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-0.4\pgf@circ@res@step}}
\pgfusepath{draw}
}
\makeatother
\begin{document}
\begin{circuitikz}
\draw (0,0) node[ground]{} to [C, *-*] (0,2);
\node[xshift=1.75cm](0,0){$ \leftarrow $ Start ground here};
\draw (4,0) node[myground]{} to [C, *-*] (4,2);
\end{circuitikz}
\end{document}
请注意,我还简化了你的零长度short
。
答案2
如果您不介意尾部重叠的话,您可以将地面稍微向上移动。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{circuitikz}
\newlength{\kludge}
\begin{document}
\begin{circuitikz}
\kludge=\ctikzvalof{monopoles/ground/width}\csname pgf@circ@Rlen\endcsname
\draw (0,0) node[ground,yshift=1.2\kludge]{} to [C,*-*] (0,2);
\node[right=0.5\kludge]{$ \leftarrow $ Start ground here};
\end{circuitikz}
\end{document}