如何全局自定义这些开关(创建 \newcommand 或自定义环境)
\documentclass[]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0) node[spdt, xscale=-1] (Sw) {} (Sw.in) node[right] {in} (Sw.out 1) node[left] {out 1} (Sw.out 2) node[left] {out 2};
\end{circuitikz} %yscale = -1
\begin{circuitikz}
\draw (0,0) node[spdt] (Sw) {} (Sw.in) node[left] {in} (Sw.out 1) node[right] {out 1} (Sw.out 2) node[right] {out 2};
\end{circuitikz}
\end{document}
有这样的盒子吗?
编辑:即使参考手册也足够了
答案1
看起来你复制了代码,却没有理解这个概念
\draw (0,0) node[spdt, xscale=-1] (Sw) [red]{a}
(0,0)是节点的坐标,最初你还没有给出名称{}
我给它取名为 {a},由于 xscale=-1,所以它是反转的(与镜像相同)
\draw [red, thick] (Sw.in) -- (Sw.out 2);
只需从您命名的节点 (Sw.in) 到 (Sw.out 2) 画一条线
你想要的是以下
这平均能量损失
\documentclass[]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0) node[spdt, xscale=-1] (Sw) {}
(Sw.in) node[right] {in}
(Sw.out 1) node[left] {out 1}
(Sw.out 2) node[left] {out 2};
\draw [red, thick] (-0.4,-0.4) rectangle (0.4,0.4);%<-----added rectangle
\end{circuitikz} %yscale = -1
\begin{circuitikz}
\draw (0,0) node[spdt] (Sw) {}
(Sw.in) node[left] {in}
(Sw.out 1) node[right] {out 1}
(Sw.out 2) node[right] {out 2};
\end{circuitikz}
\end{document}
编辑
添加
\newcommand environ
这平均能量损失
\documentclass{article}
\usepackage{circuitikz}
\begin{document}
\newcommand\boxspdt{%
\begin{circuitikz}
\draw (0,0) node[spdt, xscale=-1] (Sw) {}
(Sw.in) node[right] {in}
(Sw.out 1) node[left] {out 1}
(Sw.out 2) node[left] {out 2};
\draw [red, thick] (-0.4,-0.4) rectangle (0.4,0.4);
\end{circuitikz} %yscale = -1
}
\boxspdt
\end{document}
编译
\boxspdt
会给
附言 你应该能够
\begin{circuitikz}...\end{circuitikz}
超出上述定义;那么,你的来源将会有
\begin{circuitikz}
\boxspdt
:
:
<optional other components can be added here other code here>
:
:
\end{circuitikz}
(在这种情况下,您可能还想添加一种命名 spdt 的方法。也许是一个可选参数。)
答案2
可以使用节点的其他锚点(Sw)
在其周围绘制一个框,尽管它会穿过in
和out
锚点。由于 calc tikzlibrary 已加载,因此添加偏移量相对容易。
注意[xscale=-1]
反转west
和east
锚定。
\documentclass[]{standalone}
\usepackage{amsmath}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0) node[spdt, xscale=-1] (Sw1) {} (Sw1.in) node[right] {in} (Sw1.out 1) node[left] {out 1} (Sw1.out 2) node[left] {out 2};
\draw[red] ($(Sw1.south east)+(4pt,-3pt)$) rectangle ($(Sw1.north west)+(-4pt,3pt)$);
\draw (3,0) node[spdt] (Sw2) {} (Sw2.in) node[left] {in} (Sw2.out 1) node[right] {out 1} (Sw2.out 2) node[right] {out 2};
\draw[red] ($(Sw2.south west)+(4pt,-3pt)$) rectangle ($(Sw2.north east)+(-4pt,3pt)$);
\end{circuitikz}
\end{document}