옵션의 기본값과 초기값의 차이

옵션의 기본값과 초기값의 차이

/tikz/shapep.의 노드 옵션 에 대한 설명에서 . 버전 3.0.1a용 TikZ & PGF 매뉴얼 216에서는 다음과 같이 설명합니다.

기본값 없음, 처음에는rectangle

계속해서 이 옵션이 선택된다고 설명합니다.

현재 노드의 모양 또는 이 옵션이 노드 내부가 아닌 외부 어딘가에 제공되는 경우 현재 범위에 있는 모든 노드의 모양입니다.

기본값이 있는 옵션과 초기에 특정 값이 있는 옵션의 차이점은 무엇입니까? 처음에 rectangle기본 이 /tikz/shape되는 대신 rectangle동작과 사용 방식이 어떻게 변경됩니까?

누군가 최소한의 예를 들어 차이점을 설명하고 보여줄 수 있습니까?


현재 질문은 다음과 유사합니다.이 하나. 그러나 그 질문은 (내가 익숙하지 않은) PGF를 다루는 반면, 현재 질문은 TikZ를 다루고 있습니다.

PGF와 TikZ는 두 개의 별도 레벨입니다. 매뉴얼(p. 221)에서 다음 인용문을 고려하십시오.

PGF와 TikZ는 모두 이러한 다중 부분 노드를 지원합니다. 낮은 수준에서 PGF는 모양이 여러 부분으로 구성되도록 지정하는 시스템을 제공합니다. TikZ 수준에서는 다음 명령을 사용하여 다양한 노드 부분을 지정합니다.

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

이 인용문의 요점은 동일한 기능이 PGF와 TikZ에서 서로 다르게 나타날 수 있음을 보여주는 것입니다. 특정 기능이 한 수준에서 어떻게 나타나고 다른 수준에서 어떻게 나타나는지 묻는 것이 합리적입니다. 질문은 TikZ의 \nodepart명령에 대한 질문이 다른 질문과 중복되지 않고 모양이 여러 부분으로 구성되도록 지정하는 PGF 시스템에 대한 질문과 공존할 수 있는 것과 같습니다 .

내 질문은: 낮은 수준의 PGF에 의존하지 않고 TikZ 개념과 구문만 사용하여 차이점을 설명하고 최소한의 예를 제공하는 것이 가능합니까? TikZ만 아는 고급 사용자의 관점에서 차이를 느낄 수 있나요? (저도 그런 사용자입니다.)

답변1

이 답변은 TikZ/PGF 매뉴얼이 키워드의 기본값/초기 값을 의미하는 것을 설명하기 위한 것입니다. 와 아무런 관련이 있을 수도 있고 없을 수도 있습니다..default.initial키 사용법특정 구현에 따라 다릅니다.

예를 들어shape:

  • no default말할 수 없다는 뜻이다

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

    기본값이 없기 때문입니다(이 경우 키는 인수를 포함하도록 정의되었으므로 그렇게 하면 오류가 발생합니다. 감사합니다, @percusse). 예를 들어,가졌다 circle기본적으로 이는 앞서 언급한 명령을 사용하여 원 모양의 노드를 가질 수 있음을 의미합니다.

  • initial당신이 말하면 의미

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

    없이당신 shaperectangle.

또 다른 예는 다음과 같습니다(설명서에서 바로 볼 수 있음).

/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 코드로 변환되므로 별도의 기능이 없습니다. 구문의 문제입니다.

관련 정보