答案1
节点的内容被内分隔框和外分隔框包围。您必须使用选项将这两个分隔框的宽度设置为零inner sep=0pt,outer sep=0pt
。您可以在一个地方对图片中的所有节点执行此操作,但通常只想修改几个节点。
\documentclass[border=1]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node [right,scale=.5,inner sep=0pt,outer sep=0pt]at (2,6.75) {Example};
\node [right,scale=1,inner sep=0pt,outer sep=0pt]at (2,6.5) {Example};
\node [right,scale=2,inner sep=0pt,outer sep=0pt]at (2,6) {Example};
\end{tikzpicture}
\end{document}
现在,缩进的任何差异都是由于字母的特性造成的,可以通过将文本放入框中进行检查:\fbox{Example}
左边框形成一条直线。
答案2
使用选项scale
不是增加字体大小的正确方法,因为它也会增加节点的inner sep
(和outer sep
)。要将节点文本与节点左边框对齐,您需要设置inner sep=0pt
:
\documentclass[ tikz, border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[
every node/.style = {inner sep=0pt, right}
]
\node [scale=.5] at (2,6.75) {Example};
\node [scale=1] at (2,6.50) {Example};
\node [scale=2] at (2,6.00) {Example};
\end{tikzpicture}
\end{document}
这使:
为进行比较,请参见以下示例:
\documentclass[ tikz, border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[
every node/.style = {right}
]
\node [font=\tiny] at (2,6.75) {Example};
\node [] at (2,6.50) {Example};
\node [font=\huge] at (2,6.00) {Example};
\end{tikzpicture}
\end{document}
这使:
编辑:
甚至更精确地将文本左侧的外部分隔符全部对齐为零:outer sep=0pt
。
但是,您的问题不是很清楚:标题中您要求垂直对齐,但是图像中却显示水平对齐的问题...
答案3
除了将其设置inner sep
为零之外,正如其他答案中所建议的那样,我会inner sep
在缩放后“恢复”“旧”/默认值。
这样做的好处是,当你想用一些线“连接”节点时,结果不会有点奇怪。
\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
outer sep=auto,
]
\pgfmathsetmacro{\scale}{0.5}
\node [right,scale=\scale,inner sep=0.3333em/\scale]
(small) at (2,6.75) {Example};
\node [right,scale=1]
(normal) at (2,6.5) {Example};
\pgfmathsetmacro{\scale}{2}
\node [right,scale=\scale,inner sep=0.3333em/\scale]
(large) at (2,6) {Example};
\draw [black!25] (small.north west) -- (large.south west);
\draw [red] (1.5,6.5) edge (small.west)
edge (normal.west)
edge (large.west);
\end{tikzpicture}
\end{document}