2

I'm currently trying to wireup text parts to describe some thing like Unix file permissions or the output of an

ls -al

But I have no clue how I can create something like this:

enter image description here

I was thinking about using \path or \node from TikZ

But I didn`t get it to work out.

4

You mean something like this?

\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}

enter image description here

4

I basically stole JouleV's answer and revised it to use relative positioning and pack the nodes closer together. Specifically, the gap between the text of two adjacent nodes is 2 times inner sep. Unfortunately, inner sep is also added to the lines under the text, so there I had to reduce inner xsep and increase the separation using [right=4pt].

BTW, the default for inner sep is 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}

demo

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.