带有“透明组”的样式

带有“透明组”的样式

我们可以定义一种样式来“将所有箭头放在与路径相同的透明度组上”吗?

在下面的例子中,我想重新定义ephemeral样式,使得蓝色和红色箭头看起来相同(路径末端和箭头头部之间没有可见的重叠)。

我怎样才能做到这一点?

\documentclass[varwidth,border=50]{standalone}
\usepackage{tikz}
\begin{document}

\tikzset{
  ephemeral/.style = {opacity=.35}
}
\begin{tikzpicture}
  \draw[ephemeral, ultra thick,-latex, blue] (0,0) -- (1,0);
  \begin{scope}[opacity=.35, transparency group, yshift=-.5cm]
    \draw[ultra thick,-latex, red] (0,0) -- (1,0);
  \end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

您可以使用TiKZ 3.0 库吗?箭头的值arrows.meta是否像( ) 箭头那样为 0?insetLaTeXlatex

如果这两个问题的答案都是肯定的,那么您可以使用类似 的箭头-{.Latex}arrows.meta语法.强制行在箭头尖端前停止。下图显示了结果,最上面的箭头用 声明-{.Latex},第二个箭头用 声明-{LaTeX}

在此处输入图片描述

\documentclass[varwidth,border=50]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}

\tikzset{
  ephemeral/.style = {opacity=.35}
}
\begin{tikzpicture}
  \draw[ephemeral, ultra thick,-{.Latex}, blue] (0,.5) -- (1,0.5);
  \draw[ephemeral, ultra thick,-{Latex}, blue] (0,0) -- (1,0);
  \begin{scope}[opacity=.35, transparency group, yshift=-.5cm]
    \draw[ultra thick,-.Latex, red] (0,0) -- (1,0);
  \end{scope}
\end{tikzpicture}
\end{document}

注意:不要依赖TeXworks查看器来查看结果,请使用其他 pdf 查看器。在TeXworks查看器中,该图如下所示

在此处输入图片描述

相关内容