TikZの派手な矢印



Fancy Arrows With Tikz



解決:

私は少し遅れています..しかし、これは私の元のコードで必要なものです:

 documentclass [svgnames] {article}  usepackage {tikz}  usetikzlibrary {fadings、shapes.arrows、shadows}  tikzfading [name = arrowfading、top color = transparent!0、bottom color = parallel!95]  tikzset {arrowfill / .style = {top color = OrangeRed!20、bottom color = Red、general shadow = {fill = black、shadow yshift = -0.8ex、path fading = arrowfading}}}  tikzset {arrowstyle / .style = {draw = FireBrick 、arrowfill、単一矢印、最小高さ=#1、単一矢印、単一矢印ヘッドextend = .4cm、}}  newcommand { tikzfancyarrow} [2] [2cm] { tikz [baseline = -0.5ex]  node [ arrowstyle =#1] {#2};}  begin {document}これは私の tikzfancyarrow {fancy} arrow \これは私の tikzfancyarrow [3cm] {fancy} arrow \  end {document}

結果:



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


改善されたバージョン(xparseパッケージ):



 documentclass [svgnames] {article}  usepackage {tikz}  usetikzlibrary {fadings、shapes.arrows、shadows}  usepackage {xparse}  usepackage {lipsum}  tikzfading [name = arrowfading、top color = parallel!0、bottom color = transparent!95]  tikzset {arrowfill / .style = {#1、general shadow = {fill = black、shadow yshift = -0.8ex、path fading = arrowfading}}}  tikzset {arrowstyle / .style n args = { 3} {draw =#2、arrowfill = {#3}、単一の矢印、最小の高さ=#1、単一の矢印、単一の矢印の頭の延長= .3cm、}}  NewDocumentCommand { tikzfancyarrow} {O {2cm} O { FireBrick} O {top color = OrangeRed!20、bottom color = Red} m} { tikz [baseline = -0.5ex]  node [arrowstyle = {#1} {#2} {#3}] {#4} ; }  begin {document}これは私の tikzfancyarrow {fancy}矢印です\これは私の tikzfancyarrow [3cm] {fancy}矢印です。  lipsum [1]別の tikzfancyarrow [2.5cm] [Orchid] [top color = Thistle、bottom color = Orchid] {example} of  tikzfancyarrow [3cm] [SeaGreen] [top color = SpringGreen、bottom color = Teal ] {tikzfancyarrow}色の可能性が異なります。  tikzfancyarrow [1.5cm] [DarkBlue] [top color = PaleTurquoise、bottom color = DeepSkyBlue、shape borderrotate = 270] {rotated}下向きの矢印とrotated  tikzfancyarrow [1.5cm] [Crimson] [top color = Coral、bottom color = DarkOrange、shape borderrotate = 90] { phantom {cf}}必要に応じて、上向きの矢印。  end {document}

結果:

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

免責事項



当然のことながら、私は色あせと影を正しく視覚化することができません。少なくとも私にとっては、Okular、Adobe Reader、Preview(Macの場合)で動作します。

コードの説明

さらにカスタマイズできる改善された例を参考にして、コードを見てみましょう。

最初はフェージングと定義されています

 tikzfading [名前=矢印フェード、上部の色=透明!0、下部の色=透明!95]

名前を付け、上部の色を不透明にし、下部の色をほぼ透明にするように指定します。実際には、フェードは矢印の影に適用されます。確かに、矢印が塗りつぶされるスタイルを定義するときアローフィルフェードはシャドウの一部として渡されます。

 tikzset {arrowfill / .style = {#1、general shadow = {fill = black、shadow yshift = -0.8ex、path fading = arrowfading}}}

このスタイルは、後で背景色と矢印の方向を設定するために使用されるパラメーターを受け取ります。実際には、スタイルは別のスタイルに渡されますが、矢印がどのようになっているのかを実際に定義するarrowstyle:

 tikzset {arrowstyle / .style n args = {3} {draw =#2、arrowfill = {#3}、単一の矢印、最小の高さ=#1、単一の矢印、単一の矢印の頭の延長= .3cm、}}

3つのパラメータを受け取ります。1つ目は矢印の高さ、2つ目は矢印の境界線が色付けされる色、3つ目はに渡されます。アローフィル。また、形状が単一の矢印とそれは単一の矢じりが伸びます。

最後に、次のコマンドを使用して矢印を作成します。

 NewDocumentCommand { tikzfancyarrow} {O {2cm} O {FireBrick} O {top color = OrangeRed!20、bottom color = Red} m} { tikz [baseline = -0.5ex]  node [arrowstyle = {#1} {#2} {#3}] {#4}; }

ここでオプションベースライン= -0.5exは、矢印が線の垂直方向の中央にあることを示します。 NSノードは4つのパラメーターを受け取ります。そのうちの3つはオプションであり、デフォルト値で開発されたスタイルに渡されます。最後のパラメーターは、最終的に矢印の内側に入るテキストです。

キーを使用して矢印の方向を指定できることに注意してくださいシェイプの境界線が回転するので、特別なことは何も必要ありません。3番目のオプションの引数に追加するだけです。

実はコメントを書いて、矢印の枠の色という一つの引数を保存できることに気づきましたが、こうすることでより明確になったと思います。


(コメントで述べられているように)行間隔をあまり乱さないために、カスタマイズされた矢印の形をしたtikZパッケージによるもう1つの答え。

 documentclass [11pt] {article}  usepackage [T1] {fontenc}  usepackage {tikz}  usetikzlibrary {shadings、shadows、shapes.arrows}  newcommand * { tikzarrow} [2] {% tikz [baseline =( A.base)、%ベースラインをノードコンテンツのベースラインに設定font =  footnotesize  sffamily%ノードコンテンツのフォントサイズを設定]  node [単一矢印、%ノードの単一矢印ヘッドの形状extend = 2pt、%実際の幅矢印の頭の描画、%ノードの形状を内側に描画sep = 2pt、%ノードのコンテンツとノードの形状の分離上部の色=白、%ノードの下部の色の陰影=#1、%ノードの下部の陰影の色ドロップシャドウ%影を描く](A){#2};%}  begin {document}速い茶色のキツネが怠惰な犬を飛び越えます。  tikzarrow {red} {gitadd}速い茶色のキツネが怠惰な犬を飛び越えます。速い茶色のキツネは怠惰な犬を飛び越えます。  end {document}

さらにカスタマイズが可能です。


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


アップデート

コメントで要求されているように、以下のコードは下向きの矢印を生成します。矢印の先端は、ライン間の間隔の乱れを制限するために変更されています。

 documentclass [11pt] {article}  usepackage [T1] {fontenc}  usepackage {tikz}  usetikzlibrary {fadings、shadows、shapes.arrows}  tikzfading [name = arrowfading、top color = parallel!0、bottom color = transparent !95]  newcommand * { tikzarrow} [2] {% tikz [baseline =(A.base)、%ベースラインをノードコンテンツのベースラインに設定font =  footnotesize  sffamily%ノードコンテンツのフォントサイズを設定]  node [単一の矢印、%ノードの形状単一の矢印の頭の延長= 4pt、%矢印の頭の実際の幅単一の矢印の先端の角度= 150、%矢印の先端の角度の形状の境界線の回転= 270、%矢印の形状を回転させて下向きに描画= red!25、%ノード形状を描画します(特定の境界線の色inner sep = 2pt、%ノードコンテンツとノード形状の分離top color = white、%ノード下部のシェーディングカラー=#1、%シェーディングカラーonノードの下部一般的なshadow = {%シャドウの仕様fill = black、shadow yshift = -0.5ex、path fading = arrowfading}](A){#2};%}  begin {document}速い茶色のキツネが飛び越えます怠惰な犬。  tikzarrow {red} {gitadd}速い茶色のキツネが怠惰な犬を飛び越えます。速い茶色のキツネは怠惰な犬を飛び越えます。  end {document}

特に調整はオプションによって行われます単一矢印の先端角度と形状の境界線が回転します。問題は、矢印の形状とライン間の間隔への影響のバランスを見つけることです。

境界線の色は、ノード形状の描画オプション。新しい仕様は現在、一般的なシャドウオプション。 NSドロップシャドウオプションが削除されます。影の退色は、 tikzfadingコマンド。アローフェードスタイル。


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


参考文献

  • PGF / tikZユーザーガイド

以下にマクロを定義しましたこれに使用できる Arrow(ワークフロー図に基づく):

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

デフォルトのパラメータは、私の矢印スタイルですが、オプションの最初のパラメータを使用して、必要に応じて調整できます。以下で使用されるオプションのほとんどは、ほとんど自明であるはずです。

  • fill =は塗りつぶしの色を指​​定します

  • align =は、テキストの配置を制御するために使用されます(左、効果を見る権利。

  • text width =はテキストフィールドの幅です

  • draw =は、矢印のエッジの周りに描画される線の色を指定します

  • 超太=線幅を制御するために使用されます。

詳細については、TikX / PGFのマニュアルを参照してください。カスタマイズしようとしている特定のオプションがある場合は、さらに詳しく説明できます。

コード:

 documentclass {article}  usepackage {tikz}  usetikzlibrary {shapes}  tikzset {My Arrow Style / .style = {single arrow、fill = red!50、anchor = base、align = center、text width = 2.8cm}}  newcommand { MyArrow} [2] [] { tikz [baseline]  node [My Arrow Style、#1] {#2};}  begin {document}  MyArrow {sometext}の前のテキストといくつかのテキスト bigskipの後 MyArrow [fill = yellow!50、draw = black、超厚、テキスト幅= 3.5cm] {一部のテキスト}の前のテキストと end {ドキュメント}の後の一部のテキスト