TikZ/CircuiTikZ 电池符号

TikZ/CircuiTikZ 电池符号

我如何从 CircuiTikZ 或 TikZ 的电路库中获取这样的电池符号?我找不到任何具有较厚负极端子的符号。pst-circ\battery命令正是我想要的,但我更愿意坚持使用 TikZ。

在此处输入图片描述

梅威瑟:

\documentclass{article}

\usepackage{tikz}

\usetikzlibrary{circuits.ee.IEC}

\begin{document}
\begin{tikzpicture}[circuit ee IEC]
  \draw (0, 1) to [battery] (0, 0) {};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

也许我应该提到,你还必须将组件拆分为两条路径,以实现两种不同的线宽,

请注意,您可能可以重用\linethickness而不是\tempwidth。快速搜索 sty 文件只发现它在geometrygkpmac(?) 中使用。此外,本地更改不会超出tikzpicture

\documentclass{standalone}
\usepackage{circuitikz}

\newlength{\tempwidth}

\makeatletter
\ctikzset{bipoles/battery/width/.initial=.1}
\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/battery/height}}{battery}{\ctikzvalof{bipoles/battery/height}}{\ctikzvalof{bipoles/battery/width}}{
        \pgf@circ@res@step = -\ctikzvalof{bipoles/battery/width}
        \pgf@circ@Rlen \divide \pgf@circ@res@step by 2
        \tempwidth=\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth

        \pgfsetlinewidth{\tempwidth}
        \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
        \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
        \pgfusepath{draw}

        \pgfsetlinewidth{2\tempwidth}
        \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{.5\pgf@circ@res@up}}
        \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{.5\pgf@circ@res@down}}
        \pgfusepath{draw}
}
\makeatother

\begin{document}
\begin{tikzpicture}
  \draw (0, 1) to [battery] (0, 0) {};
\end{tikzpicture}
\end{document}

电池

相关内容