问题

问题

问题

一旦我调整了时间标签文本的大小,标签的中点似乎就会发生移动,如下面的代码/图像中的箭头所示。它与文本的底部对齐,而不是中间。有没有办法让 tikz-timing 标签垂直居中? 相关问题:LaTeX tikz-timing - 为每行标签独立调整字体大小

\vspace似乎不是一个好选择

代码

    \documentclass[border=4pt]{standalone}
    \usepackage{tikz-timing}
    \newcommand{\arr}[1]{#1 $\Longrightarrow$}
    %
    \begin{document}
    \begin{tikztimingtable}
      \arr                              & 4D{normal} \\
      \arr{\tiny\color{red}}            & 4D{tiny} \\
      \arr{\scriptsize\color{orange}}   & 4D{script} \\
      \arr{\footnotesize\color{yellow}} & 4D{footnote} \\
      \arr{\small\color{green}}         & 4D{small} \\
      \arr{\normalsize\color{blue}}     & 4D{normal} \\
      \arr{\large\color{purple}}        & 4D{large} \\
      \extracode
        \tablegrid
    \end{tikztimingtable}
    \end{document}

生成的图像

在此处输入图片描述

为什么要移动标签?

当使用 tikz-timing 和 PGF 语法时,您可能会陷入一个困境,想要移动 tikz-timing 标签(默认情况下固定在边界框的底部)。

在下面的示例中,垂直线、节点和线标签使用\foreach循环自动展开,所有这些都相对引用,以便更轻松地展开时序图。此外,我还利用了“模拟”波形中的 tikz-timing 宏;请参阅 analog_sig1,我想在其中说明未知的模拟输出。

我想要将“critical_point”标签稍微向上移动,以便我可以与交错的 t0...t15 线标签/节点对齐。

问题说明

下面是我与“调试”网格、标记和垂直线放在一起的示例波形。 在此处输入图片描述

解决方案

    {\tiny\color{blue}\raisebox{1mm}{critical\_point$\Longrightarrow$}} &

在此处输入图片描述

答案1

由于您只想更改一行的标签,因此我timing/name <row>/.try向样式中添加了一个样式timing/name。处理程序使得不必为每个可能的样式.try定义样式成为可能。timing/name <row><row>

我曾使用过这些name <row>样式两次:

  1. timing/name 1样式设置标签节点,使得基线与 D 斜率距离的中间位于同一高度。

.6pt已发现这是经验性的,并且涵盖了实际 D 线引入的额外高度。

  1. timing/name 2样式利用append after command键来实际使用 TikZ 绘制该箭头。

代码

\documentclass[border=4pt,convert={true,density=600}]{standalone}
\usepackage{tikz-timing}
\usetikzlibrary{arrows}
\newcommand{\arr}[1]{#1 $\Longrightarrow$}
\makeatletter
\tikzset{timing/name/.append style={timing/name \the\c@tikztiming@nrows/.try}}
\makeatother
\begin{document}
    \begin{tikztimingtable}[
        timing/name 1/.append style={
            anchor=east,
            yshift=\timingdslope cm/2+.6pt,
            minimum height=\timingdslope cm,
        },
        timing/name 2/.append style={
            anchor=east,
            yshift=\timingdslope cm/2+.6pt,
            minimum height=\timingdslope cm,
            font=\tiny,
            append after command={
                \pgfextra
                \pgfsetinnerlinewidth{.7pt}
                \pgfsetbuttcap
                \draw [line width=1.3pt,implies-] (\tikzlastnode.east) -- ++(-.25cm,0);
                \endpgfextra
            }
        }
        ]
        \arr                              & 4D{normal} \\
        critical\_point\hspace{.3cm}       & 4D{normal} \\
        \extracode
        \tablegrid
    \end{tikztimingtable}
\end{document}

输出

在此处输入图片描述

相关内容