Beamer 中的 Tikz 图形向框架右侧移动

Beamer 中的 Tikz 图形向框架右侧移动

我正在尝试将 tikz 绘图包含到 Beamer 幻灯片中。当我这样做时:

\begin{frame}
  \frametitle{Overview}
  \input{smartservice-diagram.tex}
\end{frame}

图片太大了。我试过这个:

\begin{frame}
  \frametitle{Overview}
  \resizebox{6in}{!}{\input{smartservice-diagram.tex}}
\end{frame}

图像缩小了,但又移到了幻灯片的右侧。图像的这一部分超出了幻灯片的右侧。如果我将调整大小框放大一点,图像实际上会从右侧滑出。如果我将其缩小,缩小后的图像又会移回左侧。

我尝试使用 smartservice-diagram.tex 和 \resizebox 创建独立文档,效果很好(图表左侧没有多余的空白)。所以它看起来像是我遗漏的 Beamer 功能。

知道我错在哪里吗?

编辑:这不仅是 beamer 独有的,使用 resizebox 或 scalebox 也会发生这种情况。我把它放在图形内部,但放在图形外部也会失败。我附上了一个 MWE:

\begin{figure}[htbp]
  \resizebox{\linewidth}{!}{
\tikzstyle{scheme} = [draw = black, fill = black!10, thin, rectangle, minimum width = 15pt, minimum height = 10pt]
\begin{tikzpicture}
  \node (n1) [scheme] {};
  \node (n2) [scheme, at = (n1.east), right = 12pt] {};
  \node (n3) [scheme, at = (n2.east), right = 12pt] {};
  \node (n4) [scheme, at = (n3.east), right = 12pt] {};
\end{tikzpicture}
}
  \caption{Test}
\end{figure}

答案1

这很可能只是由于添加了空格造成的。%如果一行以 结尾{,有时也以 结尾,则需要添加 ,以}避免换行符被视为空格。请注意已弃用,并且如果在 之外使用 ,\tikzstyle则还需要%在 之后添加。]tikzpicture

以下不会产生任何转变:

\begin{figure}
  \resizebox{\linewidth}{!}{%
\begin{tikzpicture}[scheme/.style={draw = black, fill = black!10, thin, rectangle, minimum width = 15pt, minimum height = 10pt}]
  \node (n1) [scheme] {};
  \node (n2) [scheme, at = (n1.east), right = 12pt] {};
  \node (n3) [scheme, at = (n2.east), right = 12pt] {};
  \node (n4) [scheme, at = (n3.east), right = 12pt] {};
\end{tikzpicture}%
}%
  \caption{Test}
\end{figure}

输入文件中也可能有一些前导空格和尾随空格。尝试\ignorespaces在前后添加\unskip

另一个原因可能是段落缩进,可以通过\noindent在内容前放置来删除它。您还可以\begin{adjustbox}{width=\linewidth} .. \end{adjustbox}从包中使用adjustbox缩放。它比 更有效\resizebox,还允许特殊内容,如逐字。它会\noindent自行添加以保存。

答案2

figure使用文章类。这是因为figure环境将缩进设置为零。

figure环境之外,缩进被添加到左侧,因此\linewidth宽对象将超出右边距;事实上,我得到了消息

Overfull \hbox (15.0pt too wide) in paragraph at lines 7--19

这正是缩进量。

马丁指出了造成虚假空间的其他可能来源。

相关内容