平均能量损失

平均能量损失

我正在尝试使用 TikZ 制作一个简单的图形。

简单图

这是我的代码

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}
  \tikzset{memory/.style={draw,minimum width = 100pt, minimum height = 25pt, node distance = 0}}

  % Draw memory cells with addresses.
  \newcounter{add}  % memory address
  \setcounter{add}{202}
  \node [memory, label=left:0x\theadd] (a)  {a};
  \stepcounter{add}  % name of above node
  \newcounter{aboveNode}
  \setcounter{aboveNode}{1}
  \foreach \n in {b,c,d,e,f} {
    \node [memory, label=left:0x\theadd, below = of {\alph{aboveNode}}] (\n)  {\n};
    \stepcounter{add}
    \stepcounter{aboveNode}
  }
\end{tikzpicture}

\end{document}

我觉得我应该能够做到这一点而不必使用计数器aboveNode。我发现了,\tikzlastnode但按如下方式使用它是行不通的。

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}
  \tikzset{memory/.style={draw,minimum width = 100pt, minimum height = 25pt, node distance = 0}}

  % Draw memory cells with addresses.
  \newcounter{add}
  \setcounter{add}{202}
  \node [memory, label=left:0x\theadd] (a)  {a};
  \stepcounter{add}
  \foreach \n in {b,c,d,e,f} {
    \node [memory, label=left:0x\theadd, below = of \tikzlastnode] (\n)  {\n};
    \stepcounter{add}
  }
\end{tikzpicture}

\end{document}

LaTeX 给出错误

ERROR: Undefined control sequence.

--- TeX said ---
<argument> of \tikzlastnode 

l.20       }

有没有办法访问最后绘制的节点?或者有更简单的方法来绘制我的图表?目前,我使用的线条比手动绘制每个节点要多。

更新

正如指出的那样下面的答案remember可以用来消除aboveNode计数器。add计数器也可以类似地消除吗?

答案1

更新您可以使用rememberkey 来访问最后一个节点的名称,并使用countkey 来替换add计数器。对于仍在使用 PGF 2.10 的用户,将变量列表从 更改{b,c,d,e,f}{b,...,f}将解决该版本中的错误。

平均能量损失

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}
  \tikzset{memory/.style={draw,minimum width = 100pt, minimum height = 25pt, node distance = 0}}

  % Draw memory cells with addresses.
  \node [memory, label=left:0x{202}] (a)  {a};
  \foreach \n[remember=\n as \lastn (initially a), count=\ctr from 203] in {b,...,f} {
    \node [memory, label=left:0x\ctr, below = of \lastn] (\n)  {\n};
  }
\end{tikzpicture}

\end{document}

输出

在此处输入图片描述

相关内容