如何在 tikz-timing D 中插入没有过渡的文本?

如何在 tikz-timing D 中插入没有过渡的文本?

使用时tikz-timing,符号D绘制数据信号。我有两个问题:

首先,我想画一些类似的东西:

___  _____________ _ _ _ _ _________  ____
   \/ some text left aligned        \/
___/\_____________ _ _ _ _ _________/\____

但是使用之后D{some text}我无法避免[虚线]D之前的转换;

第二,如何绘制如下所示的内容,其中 // 表示信号持续:

___  _____________//_________  ____
   \/   some text centered   \/
___/\_____________//_________/\____

第一题的示例代码如下:

% ----------------------------------------------------------------
% Article Class (This is a LaTeX2e document)  ********************
% ----------------------------------------------------------------
\documentclass[journal]{IEEEtran}

\usepackage{tikz}
\usepackage{tikz-timing}

% ----------------------------------------------------------------
\begin{document}
\def\htc{16}
\def\htcM{4}
\def\htcMI{1}
\def\tc{32}
\def\tcM{8}
\def\tcMT{16}
\def\tcMI{2}
\def\CNT{1.2}


\begin{figure}

\begin{tikztimingtable}[%
    timing/dslope=0.3,
    %timing/name/.style={text width=-2in},
     xscale=1.1,yscale=1.1,
     timing/rowdist=1.3,
     timing/coldist=0,
     line width=.5,
    ]
      & 0.5D{} \tcMT D{$x_j(n)$}  [dotted] \CNT D; \tcM D{}  0.7D{} \\ 
\end{tikztimingtable}

\end{figure}

\end{document}

答案1

我遇到了第一个问题,以下是我的部分解决方案:

不要直接在波形中绘制任何东西,而是放置一个带有文本的自定义节点,这样可以避免虚假信号转换。对于放置节点,将形状设置为是rectangle关键,否则它将不可见。节点的放置方式如下所述这里D。对于对齐,您可以调整节点前后放置的信号位数。您还可以使用不同的锚点位置,请参阅最后一个例子。

对于我使用的文本格式,timing/D/text中间的字母必须调整为当前使用的符号。我对 latex 的理解有限,但从包代码来看,可能存在 \tikztiming@textformat{<your text>}必须使用的情况,这需要将代码包装在 中。这对于使用包中的密钥\makeatletter ... \makeatother是必要的。text format

注意:下面的代码可以简化,只需加载\usepackage{tikz-timing-advnodes},即可消除!{++(0,+/-.5\yunit)}下面的转变。

\documentclass[journal]{IEEEtran}

\usepackage{tikz}
\usepackage{tikz-timing}

\begin{document}
\def\htc{16}
\def\htcM{4}
\def\htcMI{1}
\def\tc{32}
\def\tcM{8}
\def\tcMT{16}
\def\tcMI{2}
\def\CNT{1.2}


\begin{figure}

\begin{tikztimingtable}[%
    timing/dslope=0.3,
    %timing/name/.style={text width=-2in},
     xscale=1.1,yscale=1.1,
     timing/rowdist=1.3,
     timing/coldist=0,
     line width=.5
    ]
      & 0.5D{} \tcMT D!{++(0,+.5\yunit)}N[rectangle,timing/D/text]{$x_j(n)$}!{++(0,-.5\yunit)}  [dotted] \CNT D; \tcM D{}  0.7D{} \\
      & 0.5D{} $.5*\tcMT$ D!{++(0,+.5\yunit)}N[rectangle,timing/D/text]{$x_j(n)$}!{++(0,-.5\yunit)} $.5*\tcMT$ D [dotted] \CNT D; \tcM D{}  0.7D{} \\
      & 0.5D{} !{++(0,+.5\yunit)}N[rectangle,timing/D/text,anchor=west]{$x_j(n)$}!{++(0,-.5\yunit)} \tcMT D [dotted] \CNT D; \tcM D{}  0.7D{} \\
\end{tikztimingtable}

\end{figure}

\end{document}

(请注意,API 一直拒绝上传,所以这是间接的)

相关内容