TikZ: 長方形ノードのグロー

TikZ: 長方形ノードのグロー

テキストを保持する色付きノードにグロー効果を使用したいと思います。残念ながら、キーしか見つかりませんcircular glow。以下の例を参照してください。

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shadows}

\begin{document}

\begin{tikzpicture}
\clip (-2, -3) rectangle (2,3);
\node[circular glow={fill=green}, rectangle, text width=2.5cm, align=justify] {Given the rectangular text area, rectangular glow would be desirable to also cover the corners.};
\end{tikzpicture}

\end{document}

ここに画像の説明を入力してください

上記の円形領域と同じような輝き、つまり「長方形の輝き」のような長方形の色付き領域を取得する方法はありますか?

答え1

明示的な座標を指定せずに済むオプション\shadeを利用して、シェーディング領域を 4 つの部分に「分割」することもできます。local bounding box

また、\pic2 つの引数を持つ も作成しました。1 つ目は、この例では、シェーディングする長方形領域の名前ですmybox。2 つ目は、この例では、使用する色ですgreen
もちろん、シェーディングに使用する他の色など、他のパラメータを追加することもできます。この例では、「白」が固定です。

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings, backgrounds}
\tikzset{
    pics/myshade/.style 2 args={
        code = {%
          \begin{scope}[on background layer]
            \shade[upper left=white, upper right=#2,
            lower left=white,lower right=white]
            (#1.south west) rectangle (#1.center);
            \shade[upper left=#2, upper right=white,
            lower left=white,lower right=white]
            (#1.south) rectangle (#1.east);
            \shade[upper left=white, upper right=white,
            lower left=#2,lower right=white]
            (#1.center) rectangle (#1.north east);
            \shade[upper left=white, upper right=white,
            lower left=white,lower right=#2]
            (#1.west) rectangle (#1.north);
          \end{scope}
        }
    }
}


\begin{document}
    \begin{tikzpicture}[local bounding box=mybox]
        \clip (-2, -3) rectangle (2,3);
        \pic {myshade={mybox}{green}};
        \node[rectangle, text width=2.5cm, align=justify] 
        {Given the rectangular text area, rectangular glow would be desirable to also cover the corners.};
    \end{tikzpicture}
\end{document}

ここに画像の説明を入力してください

あなたのケースではこのオプションon background layerは必要ありませんが、画像をより一般的なものにするために追加しました(このオプションを使用すると領域が上書きされるのを回避できます。次の例を参照してください。テキストmyshadeがなければ、陰影の下に隠れてしまいます)。on background layermynode

長方形の領域をシェーディングするためにこの画像をどのように使用できるかを示しますmyshade。境界ボックスは赤でシェーディングされ、ノードはシアンでシェーディングされます。

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings, backgrounds}
\tikzset{
    pics/myshade/.style 2 args={
        code = {%
          \begin{scope}[on background layer]
            \shade[upper left=white, upper right=#2,
            lower left=white,lower right=white]
            (#1.south west) rectangle (#1.center);
            \shade[upper left=#2, upper right=white,
            lower left=white,lower right=white]
            (#1.south) rectangle (#1.east);
            \shade[upper left=white, upper right=white,
            lower left=#2,lower right=white]
            (#1.center) rectangle (#1.north east);
            \shade[upper left=white, upper right=white,
            lower left=white,lower right=#2]
            (#1.west) rectangle (#1.north);
          \end{scope}
        }
    }
}


\begin{document}
    \begin{tikzpicture}[local bounding box=mybox]
        \clip (-2, -3) rectangle (2,3);
        \pic {myshade={mybox}{red}};
        \node[rectangle, text width=2.5cm, align=justify] (mynode)
        {Given the rectangular text area, rectangular glow would be desirable to also cover the corners.};
        \pic {myshade={mynode}{cyan}};
    \end{tikzpicture}
\end{document}

ここに画像の説明を入力してください

答え2

そうでもないですね。マニュアルを見てみましょう。

マニュアル

そこで、 を追加して、ある種の輝きを演出してみるのもいいでしょうgeneral shadow。 と を慎重に選択するとscalefill colorかなり近いものになります。

フェードを追加することもできます。ライブラリを参照してください。ただし、必要なスケール フェードは提供されません (N、W、S、E、円形のみ)。

意見: 読みやすさの点では、drop shadowそれほど悪くないかもしれません...ところで、そのような効果が必要な場合は。TeX/LaTeX は書籍などの専門的な文書の組版から生まれたことを思い出してください。かなりの程度まで、それはまだ MS-Office のやり方に抵抗しています...私はそれが気に入っています。多くの場合、このより制限的なアプローチは、視覚的なメッセージを異なる方法で、あるいはより良く伝えるのに役立ちます。

あなたのクリップを、十分な大きさの境界線に置き換えました。

結果

\documentclass[border=6mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shadows}

\begin{document}

 \begin{tikzpicture}
%   \clip (-2, -3) rectangle (2,3);
    \node[
        circular glow={fill=green}, 
        rectangle,
        text width=2.5cm, 
        align=justify
    ] at (0,0)
    {Given the rectangular text area, rectangular glow would be desirable to also cover the corners.};
    
    \node[
        general shadow={fill=green!45,shadow scale=1.05}, 
%       drop shadow, fill=green,
        rectangle, fill=green,
        text width=2.5cm, 
        align=justify
    ] at (5,0)
    {Given the rectangular text area, rectangular glow would be desirable to also cover the corners.};
    
 \end{tikzpicture}

\end{document}

関連情報