如何使用 tikz-timing 排版“长”波形?

如何使用 tikz-timing 排版“长”波形?

我正在用类排版book(所以,一列),我需要用排版各种波形tikz-timing。当我将它用于两列文档时,我从来没有遇到过问题,但现在我遇到了这个问题(从较大的文档简化而来):

\tikzset{timing/.style={x=1ex, y=2ex, line cap=round, line join=round, line width=1.3pt}}  
\begin{tikztimingtable}
  RAWCLK & 28{CL CH} \\
\end{tikztimingtable}

2012.20120611-3尝试使用 TeX Live 2012(2011-06-11 的 Debian 版本,标记为)中的 XeLaTeX 进行编译时出现以下问题:

! Package tikz Error: Giving up on this path. Did you forget a semicolon?.

See the tikz package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.125   RAWCLK & 28{CL CH} \

我试验后发现,此方法有效当且仅当满足以下条件:

  • 我将跟踪缩短至7{CL CH}(任何超过 7 次重复都会失败)
  • 我注释掉或者删除了整个\tikzset{}命令。

因此看起来要么是极短的波形,要么是无样式的波形。显然,我更喜欢长而有样式的波形。

我不知道我是否刚遇到了可以通过其他方式解决的限制,或者我只是做了一些非常愚蠢的事情,或者我遇到了一个错误(在这种情况下我会很乐意删除该问题并与 TikZ 和/或 TikZ-Timing 作者讨论)。

答案1

大致来说,您必须使用/.append style来添加/覆盖您的自定义选项,否则整个样式信息将丢失。很可能连同内部提供的一些关键选项一起丢失。

\documentclass{book}
\usepackage{tikz-timing}
\begin{document}

\tikzset{timing/.append style={x=1ex, y=2ex, line cap=round, line join=round, line width=1.3pt}}

\begin{tikztimingtable}
  RAWCLK & 28{CL CH} \\
\end{tikztimingtable}

\end{document}

请在将来添加完整的可编译代码示例,以便人们可以直接复制/粘贴以获得可能的解决方案。

答案2

当然,就在我决定在这里发布这个问题之后,我找到了答案。典型的。答案是:“是的,你做了一件极其愚蠢的事情。”摘自 TikZ-Timing 手册:

样式只是定义绘制某个元素的样式,例如颜色或线宽。这些样式已定义,并且可以使用 重新定义\tikzset{ style name /.style= value }。但是,虽然有些样式最初是空的,但有些样式包含内部设置,因此用户样式只能使用“ ”添加.append style= value

更改\tikzset

\tikzset{timing/.append style={x=1ex, y=2ex, line cap=round, line join=round, line width=1.3pt}} 

解决了这个问题,现在我可以排版任意长的波形了。

相关内容