\documentclass{article}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\tikzstyle{every node}=[font=\footnotesize]
\node[anchor=north west, inner sep=0, rectangle, red, draw, minimum width=0.5cm](A) {%
\begin{minipage}[t]{0.5cm}%
x\\
x
\end{minipage}};
\node[inner sep=0, rectangle, blue, draw, minimum width=0.5cm, anchor=north west](B) at (0.5cm, -\baselineskip) {%
\begin{minipage}[t]{0.5cm}%
x\\
x
\end{minipage}};
\end{tikzpicture}
\end{document}
我怎样才能对齐这两个矩形,看起来像......
如果注释掉 \tikzstyle{every node}=[font=\footnotesize],则会出现此结果。问题是我需要较小的字体大小。我尝试将移位设置为 -\footnotesep,但没有成功。
答案1
如果你可以使用TiKZ v 3.0.0
,它引入了一个node
名为的新选项node font
,用于计算节点的所有维度,而font
选项只影响节点内的文本,而不影响其维度。
通过这个版本可以轻松获得你想要的东西:
\documentclass{article}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\verb+node font=\footnotesize+
\begin{tikzpicture}[every node/.style={node font=\footnotesize}]
\node[anchor=north west, inner sep=0, rectangle, red, draw,
text width=0.5cm, align=left](A) {%
x\\
x
};
\node[inner sep=0, rectangle, blue, draw,
text width=0.5cm, align=left, anchor=north west](B)
at (0.5cm, -\baselineskip) {%
x\\
x
};
\end{tikzpicture}
\verb+font=\footnotesize+
\begin{tikzpicture}[every node/.style={font=\footnotesize}]
\node[anchor=north west, inner sep=0, rectangle, red, draw,
text width=0.5cm, align=left](A) {%
x\\
x
};
\node[inner sep=0, rectangle, blue, draw,
text width=0.5cm, align=left, anchor=north west](B)
at (0.5cm, -\baselineskip) {%
x\\
x
};
\end{tikzpicture}
\end{document}
我还对您的代码做了一些更改:
- 用来
/.style
代替tikzstyle
。请查看应该使用 \tikzset 还是 \tikzstyle 来定义 TikZ 样式? - 删除
minipages
内部节点。文本节点类似于minipage
,您需要修复text width
和一些align
选项才能使用\\
内部节点换行。