CircuiTikZ:相对于最近的元件开始接地

CircuiTikZ:相对于最近的元件开始接地

这是一个简短的可编译示例

\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}

相关内容