如何画一个细的矩形

如何画一个细的矩形

我试图绘制这样的矩形(矩形中每行只有一个字母)。但是\\\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并使内容居中对齐;或者,您可以拆分内容,只要您正在设置一些alignment。第三个选项使用专用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}

相关内容