节点透明背景

节点透明背景

我有一个非常具体的问题,重复了好几次。图片上有一条线,线上方有一个带节点的箭头。由于有这条线,节点不够明显(左图)。我想做的是让线条更透明。我试过填充不透明度,这很好,因为它使线条变灰,但也使文本和箭头都变成灰色(右图)。

有没有办法只让线条变成灰色?

在此处输入图片描述

平均能量损失

\documentclass{standalone}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[>=stealth]
\draw (0,0) -- (0,2);
\draw[ultra thick,->] (2,2) -- (0.1,1) node[below left=-3pt,inner sep=0.5pt] {$\Phi_{x+\Delta x}$};
\end{tikzpicture}

\begin{tikzpicture}[>=stealth]
\draw (0,0) -- (0,2);
\draw[ultra thick,->] (2,2) -- (0.1,1) node[rectangle,rounded corners=3pt,fill=white,fill opacity=0.5,below left=-3pt,inner sep=0.5pt] {$\Phi_{x+\Delta x}$};
\end{tikzpicture}

\end{document}

编辑:在最近删除的回复中,我了解到可以text opacity=1通过使文本变黑的方式来解决问题,但我仍然不知道如何防止箭头变灰。

答案1

您可以使用的想法layers,如在 TikZ 中的节点背景中绘制边和路径,例如与text opacity键结合。

截屏

这个想法是在背景中绘制垂直线和节点,然后在顶部绘制箭头。

% arara: pdflatex
\documentclass{standalone}
\usepackage{tikz}
\pgfdeclarelayer{bg}    % declare background layer
\pgfsetlayers{bg,main}  % set the order of the layers (main is the standard layer)

\begin{document}

\begin{tikzpicture}[>=stealth]
    \draw (0,0) -- (0,2);
    \draw[ultra thick,->] (2,2) -- (0.1,1) node[below left=-3pt,inner sep=0.5pt] {$\Phi_{x+\Delta x}$};
\end{tikzpicture}

\begin{tikzpicture}[>=stealth]
    \begin{pgfonlayer}{bg}    % select the background layer
        \draw (0,0) -- (0,2);
        \node[rectangle,rounded corners=3pt,fill=white,text opacity=1,fill opacity=0.5,below left=-3pt,inner sep=0.5pt] at (0.1,1)  {$\Phi_{x+\Delta x}$};
    \end{pgfonlayer}
    \draw[ultra thick,->] (2,2) -- (0.1,1);
\end{tikzpicture}

\end{document}

相关内容