填充颜​​色影响 Tikz 梯形图块符号中的文本

填充颜​​色影响 Tikz 梯形图块符号中的文本

我是 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如评论中所建议的那样。

相关内容