如何将 Circuitikz 绘图置于独立且无边框的中央

如何将 Circuitikz 绘图置于独立且无边框的中央

myIC我已经使用库创建了名为的自定义电子元件circuitikzgit.sty下载链接)。myIC有三个引脚,分别标记为PinAPinBPinC。我在pgfdeclareshape环境中定义了此组件,这样我就可以轻松地将其合并到环境中circuitikz。我对结果非常满意,但在编译代码时遇到了一个问题。如您所见,绘图没有按预期居中。您可以在下面的两个输出中观察到border=2cm和之间的差异。border=0cm

问:如何才能使电路居中而不显示边框,类似于 \documentclass{standalone}

代码

\documentclass[border=2cm]{standalone}

\usepackage{circuitikzgit}

\pgfdeclareshape{myIC}{
    
    % define saved anchor
    % ----------------------------------------
      \anchor{center}{\pgfpointorigin}
    
    % define Connectors relative to the center
    % ----------------------------------------
      % Pin A:
      \savedanchor\myICpinA{\pgfpoint{-30}{10}}
      \anchor{}{\myICpinA}
      % Pin B:
      \savedanchor\myICpinB{\pgfpoint{-30}{-10}}
      \anchor{}{\myICpinB}
      % Pin C:
      \savedanchor\myICpinC{\pgfpoint{30}{0}}
      \anchor{}{\myICpinC}
    
    \foregroundpath{
        
        \pgfpathrectanglecorners{\pgfpoint{-30}{-30}}{\pgfpoint{30}{30}}
        \pgfusepath{draw}
        
        \pgftext[left,  at={\myICpinA}]{PinA}
        \pgftext[left,  at={\myICpinB}]{PinB}
        \pgftext[right, at={\myICpinC}]{PinC}
        
        }
}

\begin{document}
    \begin{tikzpicture}
            \begin{circuitikz}
                \draw (0,0) node[myIC] {};
            \end{circuitikz}
    \end{tikzpicture}
\end{document}

输出border=2cm): 在此处输入图片描述

输出border=0cm): 在此处输入图片描述

答案1

circuitikz环境是 的别名tikzpicture。同时使用两者,您将嵌套 tikzpictures,这是不行的。

将您的主体更改为:

\begin{document}
    \begin{tikzpicture}
                \draw (0,0) node[myIC] {};
    \end{tikzpicture}
\end{document}

你会得到一个中心事物:

在此处输入图片描述

(无论如何,您在这里使用“否” circuitikz,因为您自己定义了一个形状……但我想您在这里还有更多的东西)。

完整代码:

\documentclass[border=2cm]{standalone}

\usepackage{circuitikz}

\pgfdeclareshape{myIC}{
    
    % define saved anchor
    % ----------------------------------------
      \anchor{center}{\pgfpointorigin}
    
    % define Connectors relative to the center
    % ----------------------------------------
      % Pin A:
      \savedanchor\myICpinA{\pgfpoint{-30}{10}}
      \anchor{}{\myICpinA}
      % Pin B:
      \savedanchor\myICpinB{\pgfpoint{-30}{-10}}
      \anchor{}{\myICpinB}
      % Pin C:
      \savedanchor\myICpinC{\pgfpoint{30}{0}}
      \anchor{}{\myICpinC}
    
    \foregroundpath{
        
        \pgfpathrectanglecorners{\pgfpoint{-30}{-30}}{\pgfpoint{30}{30}}
        \pgfusepath{draw}
        
        \pgftext[left,  at={\myICpinA}]{PinA}
        \pgftext[left,  at={\myICpinB}]{PinB}
        \pgftext[right, at={\myICpinC}]{PinC}
        
        }
}

\begin{document}
    \begin{tikzpicture}
                \draw (0,0) node[myIC] {};
    \end{tikzpicture}
\end{document}

相关内容