我想知道是否有人可以理解当我尝试在多部分节点矩阵中设置文本宽度时出现的错误。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,shapes.multipart}
\begin{document}
\begin{tikzpicture}[every text node part/.style={font=\large\sffamily},
every two node part/.style={font=\normalsize\sffamily,%text width=0.5cm %<- causes an error
}]
\matrix[matrix of nodes,nodes={draw,rectangle split,rectangle split parts=2,
rectangle split draw splits=false}%,text width=0.5cm %<- causes an error
] {
top\nodepart{two}some lengthy text at the bottom & x\nodepart{two} y\\
x\nodepart{two} y & top\nodepart{two}bottom \\
};
\end{tikzpicture}
\end{document}
每次尝试设置text width
都会导致错误。
Ulrike Fischer 曾表示
所有以文本开头的选项(例如文本宽度)均无效。
在矩阵中。如果不是以下反例,我很乐意相信这一点:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix[matrix of nodes,nodes={draw},text width=0.5cm
] {
top some lengthy text at the bottom & x y\\
x y & top bottom \\
};
\end{tikzpicture}
\end{document}
以我个人观点来看,这表明可以在非多部分节点矩阵中设置文本宽度。
新见解(?):实际上能至少在某种程度上设置多部分节点的大小。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,shapes.multipart}
\begin{document}
\begin{tikzpicture}[every text node part/.style={font=\large\sffamily},
every two node part/.style={font=\normalsize\sffamily,%text width=0.5cm %<- causes an error
}]
\matrix[matrix of nodes,nodes={draw,rectangle split,rectangle split parts=2,
rectangle split draw splits=false}%,text width=0.5cm %<- causes an error
] {
top\nodepart[text width=1.5cm]{two}some lengthy text at the bottom &
x\nodepart{two} y\\
x\nodepart{two} y & top\nodepart{two}bottom \\
};
\end{tikzpicture}
\end{document}
但是,在任何右侧(最右侧?)节点重复此技巧都会失败。不过可以添加空节点:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,shapes.multipart}
\begin{document}
\begin{tikzpicture}[every text node part/.style={font=\large\sffamily},
every two node part/.style={font=\normalsize\sffamily,text width=1cm %<- causes an error
}]
\matrix[matrix of nodes,nodes={draw,rectangle split,rectangle split parts=2,
rectangle split draw splits=false}%,text width=0.5cm %<- causes an error
] {
top\nodepart{two}some lengthy text at the bottom &
x\nodepart{two} y &\\
x\nodepart{two} y & top\nodepart{two}bottom &\\
};
\end{tikzpicture}
\end{document}
致谢:我感谢 Torbjørn T.、Ulrike Fischer、Manuel Kuehner 博士和 @cfr 的有益评论。
问题:有没有办法设置节点矩阵中多部分节点的文本宽度?