标题后跟 \begin{tikzpicture} 时的空格

标题后跟 \begin{tikzpicture} 时的空格

一本书的第一章使用 tikz,结果在章节标题后放置了大量空白。我尝试过\vspace调整,但它会改变\begin& \endtikz 之间的所有垂直空间。这里的目标是在问题下方生成三个空白图表。此外,将垂直轴标题放在上方(而不是右侧)会导致这些垂直轴错位,因为整个 tikz 图片会被推移以适应不同的标签长度​​。有没有办法弥补这一点?

这是代码...

\chapter[1D Kinematics]{One Dimensional Kinematics}
\newpage
\section{Graph Matching 1}

在下面的每个图上画一条曲线(有时“曲线”是直线),表示一个人稳步走向运动探测器,停下来,然后以较慢的速度稳步离开探测器的运动。

 \begin{tikzpicture}
    \draw [thin, gray, <->] (0,-3) -- (0,3)      % draw y-axis line
       node [right, black] {$position$};              % add label for y-axis
    \draw [thin, gray, <->] (-1,0) -- (10,0)      % draw x-axis line
        node [right, black] {$time$};              % add label for x-axis
 \end{tikzpicture}

 \begin{tikzpicture}
    \draw [thin, gray, <->] (0,-3) -- (0,3)      % draw y-axis line
       node [right, black] {$velocity$};              % add label for y-axis
    \draw [thin, gray, <->] (-1,0) -- (10,0)      % draw x-axis line
        node [right, black] {$time$};              % add label for x-axis
 \end{tikzpicture}

 \begin{tikzpicture}
    \draw [thin, gray, <->] (0,-3) -- (0,3)      % draw y-axis line
        node [right, black] {$acceleration$};              % add label for y-axis
    \draw [thin, gray, <->] (-1,0) -- (10,0)      % draw x-axis line
        node [right, black] {$time$};              % add label for x-axis
 \end{tikzpicture}

答案1

您不需要使用三个单独的tikzpictures(每个图形一个),而是可以tikzpicture对所有三个图形和范围使用一个 s,并进行适当的垂直移动;这也将自动解决对齐问题:

\documentclass{book}
\usepackage{tikz}

\begin{document}

\chapter[1D Kinematics]{One Dimensional Kinematics}
\newpage
\section{Graph Matching 1}

\begin{tikzpicture}[yscale=.89]
    \draw [thin, gray, <->] (0,-3) -- (0,3)      % draw y-axis line
       node [above, black] {$position$};              % add label for y-axis
    \draw [thin, gray, <->] (-1,0) -- (10,0)      % draw x-axis line
        node [right, black] {$time$};              % add label for x-axis
\begin{scope}[yshift=-7cm]
    \draw [thin, gray, <->] (0,-3) -- (0,3)      % draw y-axis line
       node [above, black] {$velocity$};              % add label for y-axis
    \draw [thin, gray, <->] (-1,0) -- (10,0)      % draw x-axis line
        node [right, black] {$time$};              % add label for x-axis
\end{scope}
\begin{scope}[yshift=-14cm]
    \draw [thin, gray, <->] (0,-3) -- (0,3)      % draw y-axis line
        node [above, black] {$acceleration$};              % add label for y-axis
    \draw [thin, gray, <->] (-1,0) -- (10,0)      % draw x-axis line
        node [right, black] {$time$};              % add label for x-axis
\end{scope}
 \end{tikzpicture}

\end{document}

在此处输入图片描述

请注意,我用来yscale=.89防止 vbox 过满(否则,图表的高度对于页面中当前可用的垂直空间来说会太长);根据您当前的页面布局设置,您可能需要调整使用的值。

如果你还打算绘制一些函数,我建议你考虑使用pgfplots(内部使用 TikZ);一个简单的例子:

\documentclass{book}
\usepackage{pgfplots}

\pgfplotsset{
every axis/.append style={
  axis lines=middle,
  enlargelimits=true,
  axis line style={<->}
},
ymin=-3,
ymax=3,
xtick=\empty,
ytick=\empty,
xlabel=time,
domain=0:1
}

\begin{document}

\begin{tikzpicture}[yscale=.8]
\begin{axis}
  \addplot[blue] {2};
\end{axis}
\begin{axis}[yshift=-7cm]
  \addplot[green] {-2};
\end{axis}
\begin{axis}[yshift=-14cm]
  \addplot[red] {1};
\end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

有关更多详细信息,请参阅综合包文档。

相关内容