Tikz 节点文本具有不同大小的垂直对齐

Tikz 节点文本具有不同大小的垂直对齐

我想将三段文字对齐到一行,该如何设置?非常感谢

\begin{tikzpicture}

\node [right,scale=.5]at (2,6.75) {Example};
\node [right,scale=1]at (2,6.5) {Example};
\node [right,scale=2]at (2,6) {Example};  

\end{tikzpicture}

在此处输入图片描述

答案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}

该图显示了上述代码的结果

相关内容