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
)影响尺寸:
(公用)基本长度(
bipoles/length
),见手册第 33 页左右,这是所有封装组件使用的基本的、任意长度,默认为 1.4 厘米;(公共)班级比例因子(
transistors/scale
),它将按指定的因子缩放其类中的组件(它是范围有限的,因此您可以将其应用于单个晶体管),请参阅手册第 38 页左右, 默认情况下1.0
;(私人的)一组内部参数,其中一些与基本长度有关,一些与其他参数有关,它们定义了精确的形状¹。就形状而言
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
从零开始重建,我会在网格上进行。但当我接手维护时,我的承诺之一是几乎向后兼容永远。我修复的唯一不向后兼容的错误是手册中的第一个常见问题解答,你也可以关注这里。