Hintergrundfüllung für H (hoch) Timing-Zeichen und Diagrammgröße für Tikz-Timing

Hintergrundfüllung für H (hoch) Timing-Zeichen und Diagrammgröße für Tikz-Timing

Ich möchte dem Timing-Zeichen einen gefüllten Hintergrund hinzufügen H, der sonst keinen hat (es ist nur eine Linie). Ich möchte die Doder UZeichen, die eine Hintergrundfüllung haben, nicht verwenden, da sie oben und unten ebenfalls Linien hinzufügen - ich möchte nur oben eine Linie. So weit bin ich mit dem MWE unten gekommen:

test1.png

Im Metazeichen Yversuche ich, ein hinzuzufügen H, dann einen Hintergrundknoten ( \timingdefiniert aber keine backgroundEbene), dann Bdas Zeichen (Zurück) zu verwenden, um erneut ein „oben“ zu zeichnen H, aber das funktioniert nicht – wie man sehen kann, sind die Füllungen noch vorne und nicht ganz mit den Übergangslinien ausgerichtet.

Wie könnte ich ein Äquivalent zu einem korrekt „ausgefüllten“ HZeichen erhalten?

Eine weitere Frage ist: Wie kann ich das \timingDiagramm als „passenden Knoten“ (mit Breite und Höhe) erhalten, sodass ich es mittig im Masterknoten ausrichten kann? anchor=centerMacht keinen Unterschied (wahrscheinlich, weil der benannte Knoten entweder tgraph1keine Größe hat oder sich nur auf den Anfang des Diagramms bezieht).

Das MWE:

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{fit}
\usepackage{tikz-timing}

% "The modifiers ‘@’ and ‘$’ allow the user to include macros."
\tikztimingmetachar{Y}{H@{\begin{pgfonlayer}{background}}N[rectangle,fill=gray,anchor=north east,minimum width=\xunit,minimum height=\yunit,draw=none,on background layer]{}@{\end{pgfonlayer}}BH}
% \tikzset{timing/u/.style={draw=none}} \tikztimingmetachar{Y}{U{}BH} % doesn't look good
% \tikzset{timing/h/.style={draw=red}} % nope

% %http://tex.stackexchange.com/questions/47704/how-to-establish-node-anchor-like-points-on-a-tikz-rectangle-path
\makeatletter
\tikzset{ %
  fitting node/.style={
    inner sep=0pt,
    fill=none,
    draw=none,
    reset transform,
    fit={(\pgf@pathminx,\pgf@pathminy) (\pgf@pathmaxx,\pgf@pathmaxy)}
  },
  reset transform/.code={\pgftransformreset},
}
\makeatother


\begin{document}

\begin{tikzpicture}

\node[draw,minimum width=5cm,minimum height=2.5cm] (master) at (0,0) {};

\timing[very thick,
  name=tgraph1,
  fill=black,
  %timing/h/.style={fill=black},%{,cycle},
  %fitting node, % crashes w/ "! Dimension too large."
  anchor=center,
  timing/yunit=1cm,
]
    at (master.center)
  { LLL YYL HHH HHL };

\end{tikzpicture}

\end{document}

Antwort1

Nun, ich weiß immer noch nichts über die Größe und Position der Knoten, hoffe, dass mir jemand dabei helfen kann – aber ich bin in Bezug auf die Hintergrundfüllung weitergekommen, indem ich in herumgeschnüffelt habe kpsewhich tikz-timing.sty. Im Grunde gibt es dort einige Makros, die Übergänge handhaben, und aus irgendeinem Grund \tikztimingdef{HL}akzeptiert nur das einen fillParameter – und es scheint richtig zu funktionieren, aber nur, solange Ihre Zeitsequenz mit einem beginnt Lund mit einem endet L. Also lande ich schließlich bei Folgendem:

test1a.png

... was ich in Bezug auf die Hintergrundfüllung wollte; leider wird das das gesamte Verhalten der HCharaktere ändern, nicht nur pro einzelnem Zeitdiagramm. Hier ist das MWE (als kleine Nebenbemerkung, ich habe es fürTerminologie - Richtige Bedeutung (und Ursprung) von PCM? - Stack Overflow):

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{fit}
\usepackage{tikz-timing}

% to have the H character filled:
% (( note - if { LL LH HL H 0.9H 0.1L}:
% must split last H to 0.9H 0.1 (so to
% end on L, without drawing beyond range)
% else the fill of H is not good. ))
\tikztimingdef{HL}{
  -- ++(\slope,-\height)
  [fill=gray] \tikztiminguse{HH}{#1-\slope}
}

\begin{document}

\begin{tikzpicture}

\node[draw,minimum width=5cm,minimum height=2.5cm] (master) at (0,0) {};

\timing[very thick,
  name=tgraph1,
  fill=black,
  %timing/h/.style={fill=black},%{,cycle},
  %fitting node, % crashes w/ "! Dimension too large."
  anchor=center,
  timing/yunit=1cm,
]
    at (master.center)
  { LLL HHL HHH HHL };

\end{tikzpicture}

\end{document}

verwandte Informationen