我是否可以在不加载完整的 circuitikz 包的情况下使用 circuitikz 三极管形状?

我是否可以在不加载完整的 circuitikz 包的情况下使用 circuitikz 三极管形状?

我正在使用 tikz 电路库来绘制图形。但我刚刚意识到我需要晶体管。这些晶体管存在于 circuitikz 中,但不存在于 tikz 库中。有没有办法只使用 circuitikz 形状而不加载完整的 circuitikz 包?

问题是我已经有现有的图纸,使用 tikz 库完成,并且如果在同一个文档中使用 circuitikz 会产生冲突(相关:是否存在解决 circuitikz 和 TikZ 标签冲突的方法或解决方案?)。我想避免重新绘制使用 tikz 电路库完成的电路。

例如此代码将会中断:

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits.ee.IEC}
\usetikzlibrary{positioning}

\usepackage{circuitikz}
\begin{document}

    \begin{tikzpicture}[circuit ee IEC]

        \draw (0,0) to [diode={name=LED}] (0,2);
        \node[right of=LED] {LED};
    \end{tikzpicture}

\end{document}

答案1

三极点是普通的 TikZ 节点,它们在 中定义pgfcirctripoles.sty

您可以尝试仅输入该文件,但不幸的是,它与 CircuiTikZ 发行版中的其他文件有多个依赖关系。

是的,如果您愿意,您可以从该文件中提取某些节点形状,但随后您必须四处寻找所需宏/键的定义。冗长而无聊。

无论如何,如果问题只是 CircuiTikZ 重新定义resistor(嗯,实际上我的电阻在 TikZ 中出现电路库之前就存在了 ;) ),那么您只需编辑此行即可

\tikzset{resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@resistor@path, l=#1}}

进入

\tikzset{R/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@resistor@path, l=#1}}

然后删除此行

\tikzset{R/.style= {resistor = #1}}

(均来自circuitikz1.code.tex),然后语法to[R]应该可以正常工作,而不再覆盖 TikZ 的resistor

也许我会在下一个版本中引入一个可以执行此类操作的包选项。

相关内容