我正在使用该tikz-timing
包,并希望应用任一snakes
类型的样式,或者说double
将双线应用于信号线。请考虑以下示例:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,chains,matrix,positioning,scopes,snakes,decorations.markings}
\usepackage{tikz-timing}
\usetikztiminglibrary[rising arrows]{clockarrows}
\usetikztiminglibrary{advnodes}
\usepackage[graphics,tightpage,active]{preview}
\PreviewEnvironment{tikzpicture}
\newlength{\imagewidth}
\newlength{\imagescale}
\begin{document}
\begin{tikztimingtable}[timing/nodes/advanced,]
%
% start timing diagram
%
\textcolor{green}{ClockA} & [green] H N(ca01)
C N(ca02) C N(ca03) C N(ca04) C N(ca05) C N(ca06) C N(ca07) C N(ca08) \\ %
\textcolor{orange}{ClockB} & [orange,snake=zigzag,double] L N(cb01)
C N(cb02) C N(cb03) C N(cb04) C N(cb05) C N(cb06) C N(cb07) C N(cb08) \\ %
%
% end timing diagram
%
% there must NOT be an uncommented line before \extracode!
%
\extracode
\tablerules
%\tablegrid
\begin{background}[line width=0.35pt]
\draw[snake=zigzag,double] (ca01) -- (cb01) ;
\end{background}
\end{tikztimingtable}
\end{document}
得到以下时序图:
显然,snakes
和double
适用于普通线路,但不适用于信号。
是否也可以通过这种方式来“设计”信号图线条?
答案1
在 中对线条装饰的支持非常有限tikz-timing
。原因是计时符号不是绘制为一条绘图路径,而是使用多条路径。因此,大多数情况下,使用新的计时字符时,以前的样式设置都会丢失。这里的L
和H
字符不同,实际上是在一条路径中绘制的。
最开始的第一个样式选项是整个行的全局选项,但不幸的是,TikZ 似乎需要将许多装饰样式作为实际\draw
命令的本地选项。因此您的代码无法按预期工作。一些样式,例如line width
明确地从一个绘图路径复制到下一个,tikz-timing
但这对装饰没有帮助。
但是,您可以将某些样式添加到计时字符的样式定义中。这些样式被称为/tikz/timing/<char>
并且可以修改,如下所示。请注意,目前没有H
和L
字符的样式。我可能会在将来更改这一点,也许还会添加一种每个字符使用的样式。这应该就是这样。
\documentclass{standalone}
\renewcommand{\PreviewBorder}{2mm}
\usepackage{tikz}
\usetikzlibrary{snakes}
\usepackage{tikz-timing}
\tikzset{timing/c/.append style={snake=zigzag}}
\tikzset{timing/t/.append style={double}}
\tikzset{timing/d/.append style={snake=zigzag}}
\begin{document}
\begin{tikztimingtable}
A & 5{hl} 5{C} 2D{A} \\
B & 5{hl} 5{T} 2D{B} \\
\end{tikztimingtable}
\end{document}
我现在对 做了一些小改动,以tikz-timing
提供一种timing/every char
用于每个计时字符的样式。第二种样式timing/every bg
用于每个背景(例如U
)。H
和L
字符现在也有自己的样式。但是它们不会开始新的绘制路径,因此HL
组合将使用最后使用的样式进行绘制。
我必须进一步测试它,然后才能将其发布到 CTAN。请随意从 SVN 存储库下载它。只需下载离散余弦变换和移民局文件,然后运行 INS 文件latex
以提取包文件。如果您发现此版本有任何问题,请随时通过 PM 与我联系。
新的样式可以这样使用,并且可以与装饰一起使用:
\documentclass{standalone}
\renewcommand{\PreviewBorder}{2mm}
\usepackage{tikz}
\usetikzlibrary{snakes}
\usepackage{tikz-timing}
\tikzset{timing/every char/.append style={double}}
\begin{document}
\begin{tikztimingtable}
A & 5{hl} 5{C} 2D{A} Z \\
B &[timing/every char/.style={snake=zigzag}] 5{hl} 5{T} 2D{B} Z \\
\end{tikztimingtable}
\end{document}