
Ich möchte Text links und rechts ausblenden. Ich möchte, dass die Ausblendung beides visuell ermöglicht:
- progressiv
- vollständig (d. h.: wenn die Ausblendung endet, wird der Text unsichtbar)
Ich habe dafür kein Beispiel gefunden.
Ich werde meinen Versuch anhand von 5 Beispielen veranschaulichen. Mein Ausblenden erfolgt von rechts nach links und endet etwa im linken Drittel des Textes.
Bei den Texten A und B verwende ich einen weißen Farbverlauf. Bei den Texten C, D und E verwende ich einen blauen Farbverlauf.
Ich habe 2 Strategien getestet:
- Tikzfading verwenden (Beispiel A). Aber mein Text wird nicht vollständig unsichtbar. Das Ausblenden ist nicht „vollständig“.
- Zeichnen mehrerer kleiner vertikaler Streifen. Mir gefällt die Methode nicht, aber das Ergebnis entspricht eher meinen Erwartungen. Aber wenn ich das Dokument drucke oder hineinzoome, kann ich die Streifen sehen :-(
Wie kann ich ein vollständiges Ausblenden wie in B (oder C), aber ohne die Streifen erreichen?
\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}
Antwort1
Das Verblassentutunsichtbar werden, aber nur ganz am Ende. Das Problem ist, dass das Verblassen am verblassenden Ende nicht stark genug ist. Sie können einstellen middle color=transparent!50
, wodurch Ihr Originalbild erzeugt wird:
Die Einstellung middle color=transparent!10
geht von 0% auf 10% in der ersten Hälfte, von 10% auf 100% in der zweiten Hälfte, was
Wenn Sie setzen, middle color=transparent!2
erhalten Sie
\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}
Antwort2
Hier ist eine Lösung:
\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}
Hinweis: Das Ausblenden istvollständig(Ränder beachten), aber der Text bleibt sichtbar, da er nicht bis zu den Rändern reicht.