나는 다양한 도면 주석에 대한 스타일을 정의하는 경우가 많습니다. 이는 그림을 구조화하는 데 적합합니다. 그러나 개선할 수 있는 사소한 점이 있습니다. 이는 모든 상대 치수( ex
또는 단위 em
)가 항상 Ti에 의해 해석된다는 사실에서 비롯됩니다.케이Z는 코드 자체의 "레벨"에서 적용되는 글꼴 크기를 기준으로 합니다 tikzpicture
.
예를 들어 를 사용하여 하나의 주석의 글꼴 크기를 변경해야 하는 경우 기본값(또는 스타일 정의에 지정된 모든 항목)이 변경된 글꼴 크기로 항상 보기 좋게 표시되는 것은 아니기 때문에 값을 font=\tiny
수동으로 조정해야 합니다. inner sep
.
의 값이 의 임의 또는 차원 font
에 대한 기초로 사용되도록 스타일 정의를 설정할 수 있다면 이 문제는 저절로 해결될 수 있습니다. 또한 이러한 제한을 극복할 수 있다면 및 값을 스타일에 대한 인수로 지정하는 솔루션도 고려해 보겠습니다 .ex
em
inner sep
font
inner sep
MWE는 다음과 같습니다.
\documentclass[tikz]{standalone}
\tikzset{
my inner sep/.style={inner sep=#1}, % how to define this?
every node/.style={anchor=south west},
}
\begin{document}
\begin{tikzpicture}
\node[my inner sep=0.2em] (A) {A};
\node[font=\tiny,my inner sep=0.2em] (B) {B};
\foreach \node in {A,B} {
\draw[blue,line width=0.01pt] % just to show the baselines
(\node.south west) |- (\node.base) -| (\node.north east);
}
\end{tikzpicture}
\end{document}
현재 출력은 다음과 같습니다:
파란색 가는 선은 각 노드의 기준선을 표시하기 위한 것입니다. 표시된 대로 기준선은 노드 하단에서 동일한 거리에 있습니다. 의 적절한 정의는 in이 in 보다 작기 때문에 위에 표시된 위치보다 왼쪽으로 my inner sep
텍스트가 이동된 출력을 생성합니다 .B
0.2em
\tiny
0.2em
\normalsize
현재 Ti로 그러한 목표가 가능합니까?케이Z 아키텍처/작업 순서? 그렇다면 어떻게 할 수 있습니까?
답변1
노드의 글꼴을 설정하는 키가 있습니다 PGF 3.0
.node font
그리고em
및 를 사용하는 노드 차원 계산에서 글꼴로 사용됩니다 ex
. 매뉴얼의 섹션 17.4.2
("텍스트 매개변수: 글꼴") 을 참조하십시오 PGF 3.0
.
\documentclass[tikz, border=5]{standalone}
\begin{document}
\begin{tikzpicture}[every node/.style={fill=gray!50, anchor=south west}]
\node [inner sep=1em] at (0,0) (A) {A};
\node [font=\tiny, inner sep=1em] at (0,1) (B) {B};
\node [node font=\tiny, inner sep=1em] at (0,2) (C) {C};
\foreach \n in {A,B,C} {
\draw[red, very thin, <->] (\n.base west) -- (\n.base east);
\draw[red, very thin, <->] (\n.text |- \n.south) -- (\n.text |- \n.north);
}
\end{tikzpicture}
\end{document}