mehrteiliger Knoten zur Darstellung eines Bytes

mehrteiliger Knoten zur Darstellung eines Bytes

Ich versuche, einen mehrteiligen Knoten zu erstellen, um ein Byte darzustellen

Ich wünschte, ich könnte schreiben \Byte{0 1 0 0 1 1 0 0}oder \Byte {0, 1, 0, 0, 1, 1, 0, 0}erhalten Bildbeschreibung hier eingeben

\documentclass[12pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}

\newcommand{\Byte}{
\node [rectangle split,rectangle split parts=8, rectangle split horizontal,draw ] at (2,2)
{\nodepart{one}0\nodepart{two}1\nodepart{three}0\nodepart{four}0\nodepart{five}1\nodepart{six}1\nodepart{seven}0\nodepart{eight}0};
}
\begin{document}

\begin{tikzpicture}
\Byte
\end{tikzpicture}
\end{document}

Antwort1

Hier ist eine Möglichkeit, dies mit dem zweiten Ihrer gewünschten Aufrufe zu tun, wobei wir einen verwenden, \foreachum den Knoteninhalt zu erstellen und so den Knoten vorzubereiten, bevor wir ihn aufrufen.

\documentclass[12pt]{standalone}
%\url{http://tex.stackexchange.com/q/67923/86}
\usepackage{etoolbox}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}

\def\numtext#1{%
  \ifcase#1\or one\or two\or three\or four\or five\or six\or seven\or eight\or nine\or ten\or
eleven\or twelve\or thirteen\or fourteen\or fifteen\or sixteen\or seventeen\or eighteen\or nineteen\or twenty\or Lots\fi}

\newcommand{\Byte}[1]{
\def\nodecontents{}%
\foreach[count=\l] \k in {#1} {
    \xappto{\nodecontents}{\noexpand\nodepart{\numtext{\l}}\k}
}
\node [rectangle split,rectangle split parts=8, rectangle split horizontal,draw ] at (2,2)
{\nodecontents};
}
\begin{document}

\begin{tikzpicture}
\Byte {0, 1, 0, 0, 1, 1, 0, 0}
\end{tikzpicture}
\end{document}

Ergebnis:

Multibyte-TikZ-Befehl

Antwort2

Mit \defkönnen Sie Dinge schreiben wie \Byte(0,1,0,0,1,0,1,1):

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}

\def\Byte(#1,#2,#3,#4,#5,#6,#7,#8){
\node [rectangle split,rectangle split parts=8, rectangle split horizontal,draw ] at (2,2)
{\nodepart{one}#1\nodepart{two}#2\nodepart{three}#3\nodepart{four}#4\nodepart{five}#5\nodepart{six}#6\nodepart{seven}#7\nodepart{eight}#8};
}

\begin{document}

\begin{tikzpicture}
\Byte(0,1,0,0,1,0,1,1)
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen