circuitikz 中各种组件的默认尺寸是多少?

circuitikz 中各种组件的默认尺寸是多少?

circuitikz 中各种组件的默认尺寸是多少?

例如:

  • 电阻器(和其他双极子)的长度?
  • 如果node[npn]{Q}(0,0),那么绝对坐标Q.b/ Q.c/ Q.e
  • 如果node[op amp]{OA}(0,0),那么绝对坐标OA.-/ OA.+/ OA.out/ OA.up/ OA.down

谢谢!

答案1

如果你想的话,你可以找到它,但这里真正的答案是“你不知道”。这就是为什么 中有这么多锚点circuitikz。例如,对于晶体管,几个参数(用 更改\ctikzset)影响尺寸:

  1. (公用)基本长度(bipoles/length),见手册第 33 页左右,这是所有封装组件使用的基本的、任意长度,默认为 1.4 厘米;

  2. (公共)班级比例因子(transistors/scale),它将按指定的因子缩放其类中的组件(它是范围有限的,因此您可以将其应用于单个晶体管),请参阅手册第 38 页左右, 默认情况下1.0;

  3. 私人的)一组内部参数,其中一些与基本长度有关,一些与其他参数有关,它们定义了精确的形状¹。就形状而言npn,您可以在文件中找到它们pgfcirctripoles.tex

    \ctikzset{tripoles/npn/base height/.initial=.45}
    \ctikzset{tripoles/npn/base height 2/.initial=.15}
    \ctikzset{tripoles/npn/base height/.initial=.4}
    \ctikzset{tripoles/npn/conn height/.initial=0}
    \ctikzset{tripoles/npn/height/.initial=1.1}
    \ctikzset{tripoles/npn/base width/.initial=.5}
    \ctikzset{tripoles/npn/arrow pos/.initial=.5}
    \ctikzset{tripoles/npn/bodydiode scale/.initial=.3}
    \ctikzset{tripoles/npn/bodydiode distance/.initial=.3}
    \ctikzset{tripoles/npn/bodydiode conn/.initial=.6}
    \ctikzset{tripoles/npn/curr direction/.initial=1}
    \ctikzset{tripoles/bjt/npn/curr direction/.initial=1}
    

    你可以自行承担风险更改它们(只是隐含保证它们将来不会改变;有时确实会发生这种情况,尽管我总是改变一些东西,以便如果你不触及内部参数电路至少在意义上不会改变)。

示例(使用https://tex.stackexchange.com/a/179946/38080):

\documentclass[border=2.72mm,preview]{standalone}
\usepackage{circuitikz}
\makeatletter
\def\extractcoord#1#2#3{
  \path let \p1=(#3) in \pgfextra{
    \pgfmathsetmacro#1{\x{1}/\pgf@xx}
    \pgfmathsetmacro#2{\y{1}/\pgf@yy}
    \xdef#1{#1} \xdef#2{#2}
  };
}
\makeatother
\begin{document}
\begin{circuitikz}[]
    \draw [cyan!50, ultra thin] (-1,-1) grid[step=1mm] (2,1);
    \draw [cyan, thin] (-1,-1) grid (2,1);
    \node [npn](N1) at (0,0) {Q};
    \extractcoord\nx\ny{N1.C}
    \node [above, red, font=\tiny\ttfamily] at (N1.C) {\nx,\ny};
    \ctikzset{tripoles/npn/height=0.8}% internal parameter, beware
    \node [npn](N2) at (1.5,0) {Q};
    \extractcoord\nx\ny{N2.C}
    \node [above, red, font=\tiny\ttfamily] at (N2.C) {\nx,\ny};
\end{circuitikz}
\end{document}

在此处输入图片描述

结论:使用锚,卢克……

发布数据:如果你使用的\ctikzset{bipoles/length=1cm}数字更好,通常:

在此处输入图片描述

(考虑到数学精度/分辨率,1.49998 与 1.5 相同pgfmath)。


¹ 如果要circuitikz从零开始重建,我会在网格上进行。但当我接手维护时,我的承诺之一是几乎向后兼容永远。我修复的唯一不向后兼容的错误是手册中的第一个常见问题解答,你也可以关注这里

相关内容