Preenchimento de plano de fundo para caractere de temporização H (alto) e tamanho do diagrama para temporização tikz

Preenchimento de plano de fundo para caractere de temporização H (alto) e tamanho do diagrama para temporização tikz

Gostaria de adicionar um fundo preenchido ao Hcaractere de tempo, que de outra forma não possui (é apenas uma linha). Não quero usar caracteres Dou Uque tenham preenchimento de fundo, porque eles também adicionam linhas na parte superior e inferior - gostaria de uma linha apenas na parte superior. Foi assim que cheguei com o MWE abaixo:

teste1.png

No metachar Y, estou tentando adicionar um H, depois um nó de fundo (mas \timingnão define uma backgroundcamada) e, em seguida, usar Bo caractere (voltar) para redesenhar um Hno "topo" novamente, mas isso não funciona - como pode ser visto, os preenchimentos ainda estão na frente e não estão totalmente alinhados com as linhas de transição.

Como eu poderia obter um equivalente a um Hcaractere devidamente "preenchido"?

Uma pergunta adicional é: como eu poderia obter o \timingdiagrama como um "nó de ajuste" (com largura e altura), para poder alinhá-lo centralizado no nó mestre? anchor=centernão faz nenhuma diferença (provavelmente porque o nó nomeado tgraph1não tem tamanho ou apenas se refere ao início do diagrama)

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

Responder1

Bem, ainda não sei sobre o tamanho e a posição do nó, espero que alguém ajude com isso - mas cheguei a algum lugar em relação ao preenchimento de plano de fundo, fuçando em kpsewhich tikz-timing.sty. Basicamente, existem algumas macros que tratam de transições e, por algum motivo, apenas aceitarão \tikztimingdef{HL}um fillparâmetro - e parece estar funcionando corretamente, mas apenas enquanto sua sequência de tempo começar com an Le terminar com an L. Então, eventualmente, acabo com isto:

teste1a.png

... que é o que eu queria em relação ao preenchimento de fundo; infelizmente isso mudará todo o comportamento dos Hpersonagens, não apenas um único diagrama de tempo. Aqui está o MWE (como uma curiosidade, usei isso paraterminologia - Significado adequado (e origem) do PCM? - Estouro de pilha):

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

informação relacionada