我有一个非常具体的问题,重复了好几次。图片上有一条线,线上方有一个带节点的箭头。由于有这条线,节点不够明显(左图)。我想做的是让线条更透明。我试过填充不透明度,这很好,因为它使线条变灰,但也使文本和箭头都变成灰色(右图)。
有没有办法只让线条变成灰色?
平均能量损失
\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}