
왼쪽과 오른쪽의 일부 텍스트를 흐리게 하고 싶습니다. 나는 페이딩이 시각적으로 둘 다되기를 원합니다.
- 진보적인
- 완료(예: 페이딩이 끝나면 텍스트가 보이지 않게 됩니다)
나는 그런 예를 찾지 못했습니다.
제가 시도한 것을 5가지 예를 통해 설명하겠습니다. 내 페이딩은 오른쪽에서 왼쪽으로 진행되며 텍스트의 왼쪽 1/3 부근에서 끝납니다.
텍스트 A와 B에서는 흰색 페이딩을 사용합니다. 텍스트 C, D, E에서는 파란색 페이딩을 사용합니다.
저는 2가지 전략을 테스트했습니다.
- 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}
참고: 페이딩은완벽한(테두리를 보세요) 하지만 텍스트는 테두리까지 끝까지 가지 않기 때문에 계속 표시됩니다.