在节点命令中排版两行代码

在节点命令中排版两行代码

在下面的代码中,TikZ是在平行四边形的顶点处绘制四个节点。我想在其中两个节点中放置两行文本。我使用 来表示这一点//。我认为使用contents选项可以实现这一点。

要绘制平行四边形的边缘,我是否应该先将坐标标记为 A、B、C 和 D,然后继续发出类似命令\draw (A) -- (B) -- (C) -- (D) -- cycle

什么命令可以将节点置于前台?什么命令可以在节点的边框(2,4)和指向它的两条线段之间添加一点空间?

\documentclass{amsart}
\usepackage{tikz}
        \usetikzlibrary{calc,angles,shapes,positioning,intersections,quotes,decorations.markings}        
\begin{document}

\begin{tikzpicture}

\path (0,0) node [red] {origin}
(1,3) node[blue]{node contents={upper \\ left}}
(2,4) node[green]{diagonal}
(3,2) node[node contents={lower \\ right}] ;

\end{tikzpicture}

\end{document}

答案1

如果您只想移动节点,使它们不干扰形状,您可以自己xshift调整yshift它们的位置。您也可以按照您的建议使用锚点。

在此处输入图片描述

\documentclass{amsart}
\usepackage{tikz}  
\begin{document}

\begin{tikzpicture}
\draw[fill=yellow] (0,0) -- (3,5) -- (8,8) -- (5,3) -- cycle;
\node[red, xshift=-1em, yshift=-1em] at (0,0) (A) {origin};
\node[blue, yshift=1em, xshift=-1em] at (3,5) (B) {\begin{tabular}{c}
upper \\
left \\
\end{tabular}};
\node at (8,8) [green, yshift=1em, xshift=1em] (C) {diagonal};
\node at (5,3) [yshift=-1.5em, xshift=1em] (D) {\begin{tabular}{c}
lower \\
right \\
\end{tabular}};
\end{tikzpicture}

\end{document}

关于颜色,请记住您可以fill=yellow!20通过改变数字来改变色调。

答案2

为什么要打字?

\documentclass{amsart}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}

\draw[red,fill=yellow] (0,0) node [below left,red] {origin} --
(3,5) node[blue, align=center,above left]{upper \\ left} --
(8,8) node[green,above]{diagonal} --
(5,3) node[below right,align=center]{lower \\ right} -- cycle ;

\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容