\documentclass[a4paper]{article}
\usepackage{tikz}
\usepackage{circuitikz} \usetikzlibrary{shapes.geometric,arrows,shapes,decorations.markings} \begin{document}
\begin{circuitikz} [american currents]
\foreach \x in {1,2,3} {
\def\myr{\pgfmathparse{int(mod(\x,2))}\pgfmathresult}
\draw (\x,0) [nos=\myr, color={rgb:red,1; blue,0}] to (\x,1); % <---
}
\end{circuitikz}
\end{document}
上述代码生成了附图。我希望开关 0 为蓝色。将突出显示的行更改为
\draw (\x,0) [nos=\myr, color={rgb:red,\myr; blue,1-\myr}] to (\x,1);
导致 texmaker 5.0.3 在 osx 上崩溃。我该如何解决这个问题?
答案1
看起来这和着色中使用的有关1-\myr
。一种解决方案是使用 来导出红色和蓝色。使用这种方法时,您需要在定义颜色时\pgfmathparse
进行扩展,因此使用 而不是。我还将 放在了定义之外。\pgfmathresult
\xdef
\def
\pgfmathparse
\documentclass[a4paper]{article}
\usepackage{tikz}
\usepackage{circuitikz}
\usetikzlibrary{shapes.geometric,arrows,shapes,decorations.markings}
\begin{document}
\begin{circuitikz} [american currents]
\foreach \x in {1,2,3} {
\pgfmathparse{int(mod(\x,2))}\xdef\myr{\pgfmathresult}
\pgfmathparse{int(1-mod(\x,2))}\xdef\myb{\pgfmathresult}
\draw (\x,0) [nos=\myr, color={rgb:red,\myr; blue,\myb}] to (\x,1);
}
\end{circuitikz}
\end{document}