我试图绘制这样的矩形(矩形中每行只有一个字母)。但是\\
、\linebreak
、\newline
似乎都不起作用。我该怎么做?
好吧,我尝试了这个:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[node distance=1cm, auto]
\tikzset{
man/.style={rectangle}
}
\node[man] (man) {A \\ B \linebreak C \newline D};
\end{tikzpicture}
\end{document}
答案1
首先,在你的问题中,说 Tikz 还有其他部分会很有趣。如果没有其他部分,Code Mocker 的使用是正确的,\parbox
但你需要固定宽度。
也许可以将您的问题视为重复的问题:手动自动换行您还可以阅读pgfmanual 16.4.3 文本参数:多行文本的对齐方式和宽度
我更愿意给出另一个答案并附带一些解释。
如果你将简单的文本放在节点中,则此文本将写在 内\hbox
。在此框内,\\
是无效的。如果你想能够使用换行符,则需要使用复杂的对象,例如盒子,\parbox,minipageETC...
1)第一个想法类似于pgfmanual:表格
\documentclass{article}
\usepackage{colortbl}
\usepackage{tikz}
\begin{document}
\tikz \node[draw,fill=blue!20] {
\begin{tabular}{@{}c@{}}
A\\
B
\end{tabular}
};
\end{document}
2)盒子但这\parbox
并不完美。你需要知道矩形的宽度
\documentclass{article}
\usepackage{colortbl}
\usepackage{tikz}
\begin{document}
\tikz \node[draw,fill=blue!20] {
\parbox{12pt}{\centering A\\B\\C}
};
\end{document}
也可以使用minipage
或\vbox
3)text width
是一个节点选项,但你需要像 Claudio 的代码一样修复宽度
4)更好的方法是使用align=center
类似Claudio的代码
\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikz \node[draw,fill=blue!20,align=center] {A\\B\\C};
\end{document}
答案2
\documentclass[preview,border=12pt]{standalone}
\usepackage{xcolor}
\begin{document}
\colorbox{blue!50!green}{\parbox{12pt}{\centering A\\B\\C}}
\end{document}
或者
\documentclass[preview,border=3pt]{standalone}
\usepackage{xcolor}
\definecolor{mycolor}{RGB}{91,155,213}
\begin{document}
\colorbox{mycolor}{\parbox{12pt}{\color{white}\centering A\\B\\C}}
\end{document}
答案3
TikZ 版本。
最简单的方法是使用一个节点,固定它text width
并使内容居中对齐;或者,您可以拆分内容,只要您正在设置一些align
ment。第三个选项使用专用rectangle split
形状。
\documentclass[tikz]{standalone}
\usetikzlibrary{shapes.multipart}
\begin{document}
\begin{tikzpicture}
\node[text=white,fill=cyan!60!blue,text width=1em,align=center]{A B C};
\end{tikzpicture}
\begin{tikzpicture}
\node[text=white,fill=cyan!60!blue,align=center]{A\\ B\\ C};
\end{tikzpicture}
\begin{tikzpicture}
\node[text=white,fill=cyan!60!blue,
rectangle split,rectangle split parts=3]{A\nodepart{two}B\nodepart{three}C};
\end{tikzpicture}
\end{document}
结果:
答案4
方法如下。使用align=center
。
\documentclass[11pt]{article}
\usepackage[margin=1cm]{geometry}
\usepackage[demo]{graphicx}
\usepackage{tikz,xcolor}
\usetikzlibrary{positioning,calc,arrows}
\begin{document}
\tikzset{
mynode/.style={minimum height=2cm, minimum width=1cm, fill=blue, text=white,align=center}
}
\begin{tikzpicture}
\node [mynode] at (0,0) (a){A\\B\\C};
\end{tikzpicture}
\end{document}