我經常發現自己為各種繪圖註釋定義樣式。這對於建立數字非常有用。然而,有一件小事我希望我能改進。這是因為任何相對尺寸(ex
或的單位em
)始終由 Ti 解釋kZ 相對於程式碼本身「層級」有效的字體大小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}
當前輸出為:
藍色細線只是顯示每個節點的基線。如圖所示,基線到節點底部的距離相同。適當的定義my inner sep
將產生文字B
向下移動到上面所示位置左側的輸出,因為0.2em
in\tiny
小於0.2em
in \normalsize
。
以目前的 Ti 是否有可能實現這樣的目標?kZ 架構/操作順序?如果可以的話,該怎麼辦呢?
答案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}