我输入了大量的电路,当我使用 LaTeX 时,我使用了 circuitikz 库,它的语法简单而简洁。现在我改用 ConTeXt,我必须使用 TikZ 电路,它在功能方面几乎完美,但也更加冗长。
我想定义别名(例如R
,resistor
用于l
标签,V
用于电压箭头等)。我发现此主题,以及 TikZ 手册中的这个例子:
\tikzset{r/.style={radius=#1},rx/.style={x radius=#1},ry/.style={y radius=#1}}
我的第一个问题是我找不到如何使子键正常工作;我不知道如何清楚地解释它,所以这里有一个描述问题的 MWE:
\usemodule[tikz]
\usetikzlibrary[circuits.ee.IEC]
\tikzset{
R/.style={resistor},
l/.style={info}
}
\starttext
Basic usage \blank
\starttikzpicture[circuit ee IEC]
\draw (0,0) to [resistor={near start}] ++(2,0);
\draw (3,0) to [resistor={info=$a$}] ++(2,0);
\stoptikzpicture
\hairline
My tests
\blank
\starttikzpicture[circuit ee IEC]
\draw (0,0) to [R={near start}] ++(2,0);
\draw (3,0) to [R={info=$a$}] ++(2,0);
\draw (6,0) to [R={l=$a$}] ++(2,0);
\draw (9,0) to [R] ++(2,0);
\stoptikzpicture
\stoptext
一旦我使用缩写,所有我可以指定为可选的键都不会被读取,无论我l
是否使用缩写作为选项。
我的第二个问题是,我试图定义一个适合我的电压箭头,我circuit declare annotation
在 pgf 手册中找到了关键,示例如下:
\tikzset{circuit declare annotation=
{circular annotation}
{9pt}
{(0pt,8pt) arc (-270:80:3.5pt)}
}
但是,我找不到如何制作一个大小与节点大小相关联的箭头;我尝试使用(north east) -- (north west)
,但在我看来这里没有节点名称,应该写类似的内容(this node.north west)
......有没有办法将某些东西指定为“这个节点”?
答案1
要将一个参数的样式复制到另一个参数,可以使用此方法
Newstyle/.style={Oldstyle={#1}}
此处{#1}
添加括号以创建包含Oldstyle
键列表的组
代码
\usemodule[tikz]
\usetikzlibrary[circuits.ee.IEC]
\tikzset{
R/.style={resistor={#1}},
l/.style={info={#1}}
}
\starttext
Basic usage \blank
\starttikzpicture[circuit ee IEC]
\draw (0,0) to [resistor={near start}] ++(2,0);
\draw (3,0) to [resistor={info=$a$}] ++(2,0);
\stoptikzpicture
\hairline
My tests
\blank
\starttikzpicture[circuit ee IEC]
\draw (0,0) to [R={near start}] ++(2,0);
\draw (3,0) to [R={info=$a$}] ++(2,0);
\draw (6,0) to [R={l=$a$}] ++(2,0);
\draw (9,0) to [R] ++(2,0);
\stoptikzpicture
\stoptext