使用节点或其他方法突出显示 tikz-timing 中丢失的数据位

使用节点或其他方法突出显示 tikz-timing 中丢失的数据位

我想使用节点或其他可以给出类似结果的东西来突出显示丢失的数据位。以下代码

\begin{figure}[h]
\centering
% !{code} Places given code into the internal tikzpicture
\begin{tikztimingtable}
 [timing/slope=.5]
 C1                     & 2C 8{4C} 2C                           \\
 C2                     & 17{2C}   2C                           \\
 A                      & 2X 8L  4H 4L 18H                      \\
 B                      & 10X 16L 10H                           \\
 \extracode
  \draw (0,0) circle (0.2pt); %Origin
  \begin{pgfonlayer}{background}
    \vertlines [help lines]{2,10,14,18,26,34}
 \end{pgfonlayer}
\end{tikztimingtable}

\caption[Zeitablaufdiagramm Datenverlust]{Zeitablaufdiagramm Datenverlust}
\label{fig:zeitablauf_datenverlust}
\end{figure}

给我

当前时间表

我想要创造的是这样的

所需时间表

可能可以!{code}在 tikzpicture 环境中手动使用和绘制这个圆形箭头和文本。

  • 我怎样才能在我的 tikz-timingtable 中绘制带有箭头和文本的圆圈?

答案1

每行是名为 的节点rowN,编号N从 1 开始递增。定义了几个锚点,参见 手册中的图 2.1 tikz-timing。我直接使用了start第三行的锚点,并定位了一个带有 的节点pin对于该锚点定位了一个节点。请参见第 19 页(称为表内的位置和节点) 来了解所用坐标系的描述。

更多详情

在这种情况下,突出显示是通过在之后添加以下内容来完成的\extracode

\path [every pin edge/.style={<-,thick,red}] (row3.start) ++(12,-0.9\rowdist)
      node[red,circle,draw,minimum size=1.2cm,pin={[red]300:Bitfehler}]{};
  • [every pin edge/.style={<-,thick,red}]定义pin应如何绘制线条。pin可以用作 的注释node,它只是放置在“父”节点旁边的一个新节点,并从该节点向父节点绘制一条线。

  • (row3.start)是坐标规范。如上所述,时序表中的每一行都是具有多个锚点的节点。节点start不出所料地位于行的开头。

  • ++(12,-0.9\rowdist)表示该点12在当前坐标系中向右向下移动一个单位的距离0.9\rowdist。为什么是 12?手册中的一段引文:

    时间列从正值开始x = 0并进入正值范围,同时使用周期宽度进行缩放。例如:HHHh宽度为 3.5。

    您想要绘制圆圈的位置位于 10 到 14 之间,这也反映在垂直线的坐标中。

    为什么-0.9\rowdist?老实说,这是反复试验的结果。

  • node[red,circle,draw,minimum size=1.2cm,pin={[red]300:Bitfehler}]{};-- 在活动坐标处(即从线的起点向右下方 12 处),添加一个红色圆形节点,该节点的直径至少应为 1.2 厘米,并在此绘制边框。方pin={[red]300:Bitfehler}括号中是您可以添加pin标签选项的地方。300是一个角度,它表示应在节点上的哪个位置绘制引脚。

在此处输入图片描述

\documentclass[border=5mm]{standalone}
\usepackage{tikz-timing}

\begin{document}
% !{code} Places given code into the internal tikzpicture
\begin{tikztimingtable}
 [timing/slope=.5]
 C1                     & 2C 8{4C} 2C                           \\
 C2                     & 17{2C}   2C                           \\
 A                      & 2X 8L  4H 4L 18H                      \\
 B                      & 10X 16L 10H                           \\
 \extracode
  \draw (0,0) circle (0.2pt); %Origin

   \path [every pin edge/.style={<-,thick,red}] (row3.start) ++(12,-0.9\rowdist)
      node[red,circle,draw,minimum size=1.2cm,pin={[red]300:Bitfehler}]{};
  \begin{pgfonlayer}{background}
    \vertlines [help lines]{2,10,14,18,26,34}
 \end{pgfonlayer}
\end{tikztimingtable}
\end{document}

相关内容