我想使用circuitikz
ConTeXT,但是我收到一条错误消息,! Undefined control sequence.
我的代码是:
\usemodule[tikz]
\usemodule[circuitikz][european]
\starttext
\startcircuitikz
\draw (0,0) to[R, l=$R_1$] (2,0);
\stopcircuitikz
\stoptext
手册中提出了一种解决方案circuitikz
:
“在 ConTEXt 中实际使用 CircuiTikZ 和 TikZ 版本 2 时,会出现一个错误,内容如下
! 未定义控制序列。\tikz@cc@mid@checks -> \pgfutil@ifnextchar!
Aditya Mahajan 向我提出了解决方案,涉及修改 TikZ 中的文件:
以下是修复方法tikzlibrarycalc.code.tex
。
\def\tikz@cc@mid@checks{
\pgfutil@ifnextchar !{%AM: Added space
\tikz@cc@mid%
}{%
\advance\pgf@xa by\tikz@cc@factor\pgf@xb%
\advance\pgf@ya by\tikz@cc@factor\pgf@yb%
\tikz@cc@parse% continue
}% }
\def\tikz@cc@mid !{%AM Added space
\pgfutil@ifnextchar({%
\tikz@scan@one@point\tikz@cc@project%
4
}{%
\tikz@cc@mid@num%
}%
} "
我需要修改 TikZ 中的一个文件,但我不知道在哪里可以找到这个文件,也不明白需要在这个文件中更改什么。
感谢您的帮助。
梅卡迪克特
答案1
答案2
不幸的是,该circuitikz
模块不承认普通european
选项。它采用key=value
类似于的列表\ctikzset
。因此,要获得欧洲电阻器,必须传递resistor=european
给模块。此外,你有在 circuitikz 之前加载tikz
模块,否则密钥将不会被解析(我猜它们会被默默转发给tikz
后者,然后简单地丢弃它们)。
\usemodule[tikz]
\usemodule[circuitikz][resistor=european]
\starttext
\startcircuitikz
\draw (0,0) to[R, l=$R_1$] (2,0);
\stopcircuitikz
\stoptext