连接文本部分

连接文本部分

我目前正在尝试连接文本部分来描述诸如 Unix 文件权限或输出之类的内容

ls -al

但我不知道如何才能创造这样的东西:

在此处输入图片描述

我正在考虑使用\path\node来自 Ti

但我没有让它发挥作用。

答案1

你是指这样的事情吗?

\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[blue]
\node (a) at (0,0) {-};
\node (b) at (1,0) {rwx};
\node (c) at (2,0) {rw-};
\node (d) at (3,0) {r-\--};
\draw (a.south west)--(a.south east);
\draw (b.south west)--(b.south east);
\draw (c.south west)--(c.south east);
\draw (d.south west)--(d.south east);
\draw (d.south)--($(d.south)+(0,-1)$)--($(d.south)+(1,-1)$) node[right,align=left,font=\scriptsize\sffamily] {Read, write and execute\\permissions for all other users};
\draw (c.south)--($(c.south)+(0,-2)$)--($(c.south)+(2,-2)$) node[right,align=left,font=\scriptsize\sffamily] {Read, write and execute permissions for\\members of the group owning the file};
\draw (b.south)--($(b.south)+(0,-3)$)--($(b.south)+(3,-3)$) node[right,align=left,font=\scriptsize\sffamily] {Read, write and execute permissions\\for the owner of the file};
\draw (a.south)--($(a.south)+(0,-4)$)--($(a.south)+(4,-4)$) node[right,align=left,font=\scriptsize\sffamily] {File type: ``---'' means a file.\\``d'' means a directory};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

我基本上窃取了 JouleV 的答案,并对其进行了修改,以使用相对定位并将节点紧密地打包在一起。具体来说,两个相邻节点的文本之间的间隙是 的 2 倍inner sep。不幸的是,inner sep也添加到了文本下方的行中,因此我不得不inner xsep使用 来减少和增加间隔[right=4pt]

顺便说一句,默认值inner sep是 0.333em。

\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[blue]
\begin{scope}[every node/.style={inner xsep=0pt, inner ysep=2pt}]
  \node (a) {-};
  \node[right=4pt] (b) at (a.east) {rwx};
  \node[right=4pt] (c) at (b.east) {rw-};
  \node[right=4pt] (d) at (c.east) {r-\--};
\end{scope}
\begin{scope}[every node/.style={below right, align=left, font=\scriptsize\sffamily}]
  \node (e) at (d.south east) {Read, write and execute\\permissions for all other users};
  \node (f) at (e.south west) {Read, write and execute permissions for\\members of the group owning the file};
  \node (g) at (f.south west) {Read, write and execute permissions\\for the owner of the file};
  \node (h) at (g.south west) {File type: ``---'' means a file.\\``d'' means a directory};
\end{scope}
\draw (a.south west)--(a.south east)
  (b.south west)--(b.south east)
  (c.south west)--(c.south east)
  (d.south west)--(d.south east)
  (a.south) |- (h.west)
  (b.south) |- (g.west)
  (c.south) |- (f.west)
  (d.south) |- (e.west);
\end{tikzpicture}
\end{document}

演示

相关内容