我是 Tikz 的新手,我正在尝试使用circuit.ladder
库。我想将块的颜色设为浅蓝色(因为这类似于它们在编程环境中的颜色)。但是,当设置填充颜色和填充不透明度时,它也会使文本看起来透明。我尝试设置,text opacity=1
因为这应该会使文本再次不透明,但由于某种原因,它似乎不起作用。阅读库文档,我找到了有关如何为文本和块线着色的信息,但没有关于填充颜色的信息。
以下是 MWE:
\documentclass[english, 11pt, a4paper, oneside]{book}
\usepackage{tikz}
\usetikzlibrary{circuits.plc.ladder}
\usepackage{xstring} %To be able to use underscores in node texts
\begin{document}
\begin{tikzpicture}[circuit plc ladder,thin,y=0.5cm]
\tiny
\draw(0,0)
to [block={fill=blue,
symbol color=black,
fill opacity=0.5,
text opacity=1,
info=fbName,
inputs={input},
outputs={output},
symbol={FB\textunderscore Type},
name = block,
minimum width=6\ladderskip
}]
++(3,0);
\draw (block.input 1) -- +(-0.2,0)
(block.output 1) -- +(0.2,0);
\end{tikzpicture}
\end{document}
答案1
虽然我不清楚为什么fill opacity
也会影响这里的符号文本,但您可以使用以下方法来规避这种影响preaction
:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits.plc.ladder}
\begin{document}
\begin{tikzpicture}[circuit plc ladder, thin, y=0.5cm]
\tiny
\draw(0,0)
to[block={
preaction={
fill=blue,
fill opacity=0.5,
},
info=fbName,
inputs={input},
outputs={output},
symbol={FB\textunderscore Type},
name=block,
minimum width=6\ladderskip
}]
++(3,0);
\draw (block.input 1) -- +(-0.2,0)
(block.output 1) -- +(0.2,0);
\end{tikzpicture}
\end{document}
您也可以直接使用fill=blue!50
,而不额外说明,fill opacity
如评论中所建议的那样。