간단히 말해서 질문은 다음과 같습니다.낮은 수준의 \pgfkeysvalueof
매크로가 수행하는 작업을 수행하는 처리기가 있습니까, 아니면 직접 구현해야 합니까?그렇다면 다음은 합리적인 구현입니까?
\pgfkeysdef{/handlers/.value}{%
\pgfkeysvalueof{\pgfkeyscurrentpath}%
}
배경 / 코멘트 / 생각의 라인 / 예
세상에 대해 깊이 알아보고 pgfkeys
그 뒤에서 무슨 일이 일어나고 있는지 이해하려고 노력하면서 그 섹션을 읽기 시작했습니다.핵심 관리~의pgf
수동(버전 3.1.1 페이지 946의 섹션 86). 고작 25페이지 안에 모든 내용이 담겨 있음에도 불구하고 정보의 밀도가 확실히 높아서 제가 놓친 부분이 있을 확률이 상당히 높습니다. 그래서 나는 여기에서 몇 가지 스레드를 읽었습니다(1,2,삼) 연습 전/중.
아직도 나는 패키지의 한 측면에 조금 놀랐습니다 pgfkeys
. 에서이 좋은 대답key
a가 액션과 값을 모두 저장할 수 있다는 것은 매우 분명합니다 . 그리고 그 기호는 할당의 동의어가 아니기 때문에 그것이 가지고 있어야 하는 의미(즉, 행위에 부여되는 가치인가, 실제로 무엇인가인가?) =
에 따라 다르게 행동해야 한다 . 순수한 값(즉, 연결된 작업 없음)이 있다고 가정하면 해당 값을 필수로 표시하는 것이 합리적일 수 있습니다.<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}