連接文字部分

連接文字部分

我目前正在嘗試連接文字部分來描述諸如 Unix 檔案權限或某個檔案的輸出之類的內容

ls -al

但我不知道如何創造這樣的東西:

在此輸入影像描述

我正在考慮使用\path\node來自 TikZ

但我沒能成功。

答案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 sep0.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}

示範

相關內容