使用 PGF 3.0.0 置换电路

使用 PGF 3.0.0 置换电路

请考虑以下 MWE:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}

\begin{document}

    \begin{center}

        PGF version: \pgfversion
        \vspace{1em}

        \begin{tikzpicture}[circuit ee IEC]    
            \draw
                node{} (0,1)
                to [contact={at end, fill=white}] (0,1)
                to [contact=at end] node[pos=.5, above]{} (1,1);
            \draw
                node{} (1,2)
                to [contact=at end] (1,2)
                to [contact=at end] (1,1)
                to [contact=at end] (1,0);
            \draw
                node{} (5,2)
                to [contact=at end] (5,2)
                to [contact=at end] (5,1)
                to [contact=at end] (5,0);
            \draw
                node{} (5,1)
                to [contact=at end] (5,1)
                to [contact={at end, fill=white}] (6,1);
            \draw
                node{} (1,2)
                to [resistor={style={circuit symbol size=width 10 height 2.5}}] (5,2);
            \draw
                node{} (1,1)
                to [resistor={style={circuit symbol size=width 10 height 2.5}}] (5,1);
            \draw
                node{} (1,0)
                to [resistor={style={circuit symbol size=width 10 height 2.5}}] (5,0);
        \end{tikzpicture}
    \end{center}

\end{document}

当使用 PGF 2.10 通过 MiKTeX 2.9 64 位进行编译时,产生以下结果:

使用 PGF 2.10 编译的 MWE

更新我的 MiKTeX 安装并将 PGF 包升级到版本 3.0.0 后,输出如下:

使用 PGF 3.0.0 编译的 MWE

您可能会注意到,几条线发生了位移,并且打开的触点不再正确显示。

我只是想确认一下这是否是 PGF 3.0.0 软件包中的错误,或者我是否做错了什么。如果是,我会在 sourceforge.net 上的 PGF 错误跟踪器上提交错误报告。

答案1

我不知道观察到的行为是否可以被视为错误,因为我不熟悉电路的“正确”语法。

我会用不同的方式编写代码(这并不意味着你的代码是错误的,因为正如我所说,我不知道“正确”的语法)。这是我的版本:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}

\begin{document}

    \begin{center}

        PGF version: \pgfversion
        \vspace{1em}

        \begin{tikzpicture}[circuit ee IEC]
            \draw  (0,1) node [contact,fill=white] {}
                to (1,1);
            \draw  (1,2) node[contact] {}
                to (1,1) node[contact] {}
                to (1,0) node[contact] {};
            \draw  (5,2) node[contact] {}
                to (5,1) node[contact] {}
                to (5,0) node[contact] {} ;
            \draw  (5,1)
                to (6,1) node[contact, fill=white] {};
            \draw  (1,2)
                to [resistor={style={circuit symbol size=width 10 height 2.5}}] (5,2);
            \draw  (1,1)
                to [resistor={style={circuit symbol size=width 10 height 2.5}}] (5,1);
            \draw  (1,0)
                to [resistor={style={circuit symbol size=width 10 height 2.5}}] (5,0);
        \end{tikzpicture}
    \end{center}
\end{document}

我发现这contact必须被视为一个节点,线路连接到该节点,而不是to您在示例中所写的规范的一部分。支持我的版本的一点是它在 PGF2.10 和 PGF3.0 中产生相同的结果 :-)

前列腺素 F2.10

前列腺素 F 3.0

相关内容