可能重复:
使用 fit 从 PGF 层获取 Badbox
这段代码在编译时会显示“段落第 23-23 行未满 \hbox(不良率 1484)”消息。第 23 行是\node[draw, inner sep = 10pt, fit=(MUL1) (MUL2)] {};
。我该如何摆脱未满的框?
\documentclass[a4paper]{report}
\usepackage{tikz}
\usetikzlibrary{positioning,fit}
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
\begin{document}
\begin{tikzpicture}
\node[draw] (MUL1) {MUL1};
\node[draw, right = of MUL1] (MUL2) {MUL2};
\node[left = of MUL1] (A) {A};
\node[right = of MUL2] (B) {B};
\draw[->] (A) -- (MUL1);
\draw[->] (MUL1) -- (MUL2);
\draw[->] (MUL2) -- (B);
\begin{pgfonlayer}{background}
\node[draw, inner sep = 10pt, fit=(MUL1) (MUL2)] {};
\end{pgfonlayer}
\end{tikzpicture}
\end{document}
答案1
这与空节点有关。
写作
\begin{pgfonlayer}{background}
\node[draw, inner sep = 10pt, fit=(MUL1) (MUL2)] {\hspace*{\fill}~};
\end{pgfonlayer}%
反而会消除未满错误。看来一定有更好的方法来实现你的效果。
答案2
fit
TikZ/pgf (v2.10) 库中有一个 bug 。TikZ/pgf 的最新 CVS 版本(参见我的回答到如何安装当前版本的 TikZ?),您的 MWE 编译时没有错误或警告。