オプションのデフォルト値と初期値の違い

オプションのデフォルト値と初期値の違い

/tikz/shapeTikZ & PGF マニュアル バージョン 3.0.1a の 216 ページのノード オプションの説明には、次のように記載されています。

デフォルトなし、当初rectangle

このオプションを選択すると、

現在のノードの形状、またはこのオプションがノード内ではなく外部で指定されている場合は、現在のスコープ内のすべてのノードの形状。

デフォルト値を持つオプションと、最初から特定の値を持つオプションの違いは何ですか? 最初は ではなく がデフォルトである場合、rectangleその動作と使用方法はどのように変わりますか?/tikz/shaperectangle

誰か簡単な例を使って違いを説明して実演してもらえませんか?


現在の質問は、これですただし、その質問は PGF (私はよく知りません) に関するものですが、現在の質問は TikZ に関するものです。

PGF と TikZ は 2 つの別々のレベルです。マニュアル (p. 221) からの次の引用を検討してください。

PGF と TikZ はどちらも、このようなマルチパート ノードをサポートしています。下位レベルでは、PGF は、シェイプが複数のパーツで構成されていることを示すシステムを提供します。TikZ レベルでは、次のコマンドを使用して、さまざまなノード パーツを指定します。

\nodepart[<options>]{<part name>}

この引用のポイントは、同じ機能が PGF と TikZ で異なる形で現れる可能性があること、および特定の機能が 1 つのレベルでどのように現れ、別のレベルでどのように現れるかを尋ねることは合理的であることを示すことです。これは、TikZ の\nodepartコマンドに関する質問が、形状が複数の部分で構成されていることを示す PGF のシステムに関する質問と共存でき、これらの質問が互いに重複しないのと同じように、2 つの異なる質問になります。

私の質問は、低レベルの PGF に頼らずに、TikZ の概念と構文のみを使用して違いを説明し、最小限の例を示すことは可能でしょうか? TikZ しか知らない高レベルのユーザーの観点から、違いは認識できますか? (私はそのようなユーザーです。)

答え1

この回答は、TikZ/PGFマニュアルがキーワードのデフォルト/初期値について何を意味するかを説明するものです。.defaultおよび.initialキーの使用具体的な実装によって異なります。

例えばshape:

  • no default言うことができないという意味です

     \node[shape, red]{...}
    

    デフォルトが存在しないからです(この場合、キーは引数を持つように定義されているので、引数を持つとエラーになります。ありがとうございます、@percusse)。たとえば、持っていた circleデフォルトでは、前述のコマンドを使用して円形のノードを作成できます。

  • initialつまり、

    \node[color=red] {...}
    

    それなしshapeがあることを述べます rectangle

別の例としては、次のものがあります (マニュアルから直接引用):

/pgf/tips=value (デフォルトtrue、初期値on draw) エイリアス/tikz/tips

このキーは、どのような状況で矢印の先端がパスに追加されるかを制御します。次の値が許可されます。

  • true(値が指定されていない場合に使用される値)
  • proper
  • on draw(キーがまだ使用されていない場合の初期値)
  • on proper draw
  • neverまたはfalse(同じ効果)

[...]

(最後の項目のコメントの意味はわかりませんが、 とneverfalse同じですか?)

答え2

shapeこれは、問題がキーに関連しているように思われるが、かなりレガシーなキーワードであり、定義方法が非常に簡単なケースです。

\tikzoption{shape}{\edef\tikz@shape{#1}} 

\tikzoption後に になりました\tikzset。なので使用しないでください)

そしてTikZパッケージの初期化では

\def\tikz@shape{rectangle}%

これはグローバルスコープなので、何も変更しないとすべてのTikZ画像がこのデフォルト値を継承することに注意してください。これはない関連する/.initial問題/.default。マニュアルの分類により、重要な問題のように見えます。


マニュアルでno defaultこれが表示される場合、値を指定する必要があることを意味します。 が表示される場合no value、... そうですね... 値を指定する必要はありません。 値を指定する必要がある場合、エラーが発生する場合もあれば、発生しない場合もあります。

例、

\node[matrix of math nodes={4}{5}] {\tan \\ \sin};

エラーにはなりません。すべてのスタイル/コード ハンドラーは本質的に引数を受け入れるからです。/.value forbidden ハンドラーによって明示的に設定されていない場合は何も起こりません。

Initially <...>手段他に何も提供されない場合は、 <...>

いつものように、例外が適用されます...

TikZ/PGF の違いについて最後に注意点があります。すべての TikZ は PGF コードに変換されるため、個別の機能はありません。これは構文の問題です。

関連情報