我想淡化一些文本,在其左侧和右侧。我希望淡化效果在视觉上同时具有以下特点:
- 进步
- 完成(即:当淡入淡出结束时,文本变得不可见)
我没有找到任何这样的例子。
我将用 5 个示例来说明我的尝试。我的淡入淡出是从右到左,并在文本的左三分之一处结束。
在文本 A 和 B 上,我使用白色渐变。在文本 C、D、E 上,我使用蓝色渐变。
我测试了两种策略:
- 使用 tikzfading(示例 A)。但我的文本并没有完全消失。褪色并不“彻底”。
- 绘制多个细小的垂直条纹。我不喜欢这种方法,但结果更符合我的预期。但当我打印文档或放大时,我可以看到条纹 :-(
我怎样才能实现像 B(或 C)那样的完全褪色,但没有条纹?
\documentclass[tikz]{standalone}
\usetikzlibrary{fadings}
\tikzfading[name=fade example,left color=transparent!0,right color=transparent!100]
\begin{document}
{
\begin{tikzpicture}
\draw((2,4) node[fill=white!80, text=black] {AAAAAAAAAAAAAAAAAAAA} ;
\filldraw [draw=none, white, path fading=fade example] (1,3.5) rectangle (3,4.5);
\end{tikzpicture}
\begin{tikzpicture}
\draw((1,0.5) node[fill=white!80, text=black] {BBBBBBBBBBBBBBBBBBBBB} ;
\foreach \x in {0,0.01,...,2.0}
\filldraw [draw=none, white, opacity=\x/2.0] (2.0 - \x, 0) rectangle (1.96-\x, 1);
\end{tikzpicture}
\begin{tikzpicture}
\draw((1,0.5) node[fill=white!80, text=black] {CCCCCCCCCCCCCCCCCCCCCC} ;
\foreach \x in {0,0.01,...,2.0}
\filldraw [draw=none, blue, opacity=\x/2.0] (2.0 - \x, 0) rectangle (1.96-\x, 1);
\end{tikzpicture}
\begin{tikzpicture}
\draw((1,0.5) node[fill=white!80, text=black] {DDDDDDDDDDDDDDDDDDDDDDD} ;
\foreach \x in {0,0.001,...,2.0}
\filldraw [draw=none, blue, opacity=\x/2.0] (1.999 - \x, 0) rectangle (2.0-\x, 1);
\end{tikzpicture}
\begin{tikzpicture}
\draw((1,0.5) node[fill=white!80, text=black] {EEEEEEEEEEEEEEEEEEEEEEEE} ;
\foreach \x in {0,0.001,...,2.0}
\filldraw [draw=none, blue, opacity=\x/2.0] (1.999 - \x, 0) rectangle (2.001-\x, 1);
\end{tikzpicture}
}
\end{document}
答案1
衰落做变得不可见,但只在最后。问题是褪色末端附近的褪色不够严重。您可以设置middle color=transparent!50
,这将产生原始图像:
设置middle color=transparent!10
在前半部分从 0% 逐渐变为 10%,在后半部分从 10% 逐渐变为 100%,从而产生
如果你设置middle color=transparent!2
你得到
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fadings}
\tikzfading[name=fade example,left color=transparent!0,right color=transparent!100,middle color=transparent!2]
\begin{document}
\begin{tikzpicture}
\draw((2,4) node[fill=white, text=black] {AAAAAAAAAAAAAAAAAAAA} ;
\filldraw [draw=none, white, path fading=fade example] (1,3.5) rectangle (3,4.5);
\end{tikzpicture}
\end{document}
答案2
这是一个解决方案:
\documentclass[tikz]{standalone}
\usetikzlibrary{fadings}
\tikzfading[name=fade example,left color=transparent!0,right color=transparent!0,middle color=transparent!100]
\begin{document}
\begin{tikzpicture}
\node[draw,fill=white!80,text=black] (my text) {AAAAAAAAA} ;
\filldraw [draw=none, white, path fading=fade example] (my text.south west) rectangle (my text.north east);
\end{tikzpicture}
\end{document}
注意:褪色是完全的(看边界)但文本仍然可见,因为它没有完全到达边界。