![如何在 tikz-timing D 中插入没有过渡的文本?](https://linux22.com/image/292679/%E5%A6%82%E4%BD%95%E5%9C%A8%20tikz-timing%20D%20%E4%B8%AD%E6%8F%92%E5%85%A5%E6%B2%A1%E6%9C%89%E8%BF%87%E6%B8%A1%E7%9A%84%E6%96%87%E6%9C%AC%EF%BC%9F.png)
使用时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 一直拒绝上传,所以这是间接的)