필수 값이 있는 pgfkey 값 검색

필수 값이 있는 pgfkey 값 검색

간단히 말해서 질문은 다음과 같습니다.낮은 수준의 \pgfkeysvalueof매크로가 수행하는 작업을 수행하는 처리기가 있습니까, 아니면 직접 구현해야 합니까?그렇다면 다음은 합리적인 구현입니까?

\pgfkeysdef{/handlers/.value}{%
    \pgfkeysvalueof{\pgfkeyscurrentpath}%
}

배경 / 코멘트 / 생각의 라인 / 예

세상에 대해 깊이 알아보고 pgfkeys그 뒤에서 무슨 일이 일어나고 있는지 이해하려고 노력하면서 그 섹션을 읽기 시작했습니다.핵심 관리~의pgf수동(버전 3.1.1 페이지 946의 섹션 86). 고작 25페이지 안에 모든 내용이 담겨 있음에도 불구하고 정보의 밀도가 확실히 높아서 제가 놓친 부분이 있을 확률이 상당히 높습니다. 그래서 나는 여기에서 몇 가지 스레드를 읽었습니다(1,2,) 연습 전/중.

아직도 나는 패키지의 한 측면에 조금 놀랐습니다 pgfkeys. 에서이 좋은 대답keya가 액션과 값을 모두 저장할 수 있다는 것은 매우 분명합니다 . 그리고 그 기호는 할당의 동의어가 아니기 때문에 그것이 가지고 있어야 하는 의미(즉, 행위에 부여되는 가치인가, 실제로 무엇인가인가?) =에 따라 다르게 행동해야 한다 . 순수한 값(즉, 연결된 작업 없음)이 있다고 가정하면 해당 값을 필수로 표시하는 것이 합리적일 수 있습니다.<key>=<value><value>key

\pgfkeys{/my color/.initial = red, /my color/.value required}

\pgfkeys{<full path of key>}이 시점에서는 값 없이 키를 사용할 권한이 없으므로 값을 검색하는 것은 더 이상 사실이 아닙니다 . 중 하나다른 방법들값을 검색하려면 사용해야 합니다. 여태까지는 그런대로 잘됐다. 이제 \pgfkeysvalueof이 경우 가장 간단한 대답임에도 불구하고 수동 종류는 이러한 종류의 하위 수준 명령을 사용하는 것이 "일반적으로 필요하지 않음"에 대해 반복적으로 경고합니다. 예를 들어 948페이지에서

각 키는 일부 토큰을 저장할 수 있으며 키에 저장된 토큰을 설정, 가져오기 및 변경하기 위한 아래 설명된 명령이 있습니다. 그러나 이러한 명령을 직접 사용하는 경우는 거의 없습니다. 오히려 키를 사용하는 표준 방법은 \pgfkeys명령이나 내부적으로 키를 사용하는 일부 명령 입니다 \tikzset. 따라서 다음 명령을 건너뛰고 다음 하위 섹션을 계속 진행할 수 있습니다.

또한 더 높은 수준의 추상화를 유지하기 위해 핸들러를 사용하는 것을 좋아합니다. 그래서 키 값을 검색하려고 /my color핸들러를 찾았지만 제 경우에는 매크로를 거쳐야 할 이유가 전혀 없습니다(즉, /.get환영 /store in받지 못합니다). 그리고 여기서 나는 단순히 값을 검색하는 핸들러가 없다는 것을 깨달았습니다.

보너스 질문:

핸들러를 가능한 한 독점적으로 사용하는 것이 좋은 철학인가요? 그들은 나에게 더 높은 수준의 인터페이스처럼 보이므로 그렇게 말하고 싶습니다.


MWE:

\documentclass[border=5mm, varwidth]{standalone}
\usepackage{pgfkeys}

\pgfkeysdef{/handlers/.value}{%
    \pgfkeysvalueof{\pgfkeyscurrentpath}%
}

\pgfkeys{/my color/.initial = red, /my color/.value required}

\begin{document}

    %My color is \pgfkeys{/my color}. %This clearly does not compile
    My color is \pgfkeysvalueof{/my color}.\\
    My color is \pgfkeys{/my color/.value}.

\end{document}

관련 정보