\hbox
为什么这个节点会出现欠满的情况tikz
?我该如何修复它?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[draw, text width=6cm, align=right] {Some random text};
\end{tikzpicture}
\end{document}
控制台输出:
Underfull \hbox (badness 10000) in paragraph at lines 5--5
[][][][]\OT1/cmr/m/n/10 Some ran-dom text
align=left
使用或 时不会发生这种情况align=center
。实际输出看起来不错。
答案1
不幸的是,这是不可避免的。如第 17.4.3 节所述PGF Manual
:
第 225 页: ... 如果您指定了较大的行宽,而节点文本适合一行,并且实际上比指定的要短得多
text width
,则会导致水平框未满。不幸的是,这是无法避免的... 请注意,您可能会收到令人讨厌的警告,因为完全正常的框是这样的,即当框非常大并且内容不够长以充分填充框时。
要关闭警告,您可以发出\hfill
@marmot 在评论中提出的意见。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[draw, text width=6cm, align=right] {\hfill Some random text};
\end{tikzpicture}\par
$\uparrow$\par
No underfull \texttt{\textbackslash hbox} badness!\par
\vspace{1ex}
\hrule\par
\vspace{1ex}
\begin{tikzpicture}[scale=3]
\draw[latex-latex]
(4,1.2) node[above] {Underfull \texttt{\textbackslash hbox} badness} --
(4,0) --
(6.2,0) node[right] {text width};
\draw
(4.0,0) --
(4.3,0) --
(4.4,0.1087) --
(4.5,0.1308) --
(4.6,0.1558) --
(4.7,0.1845) --
(4.8,0.2158) --
(4.9,0.2503) --
(5.0,0.2884) --
(5.1,0.3312) --
(5.2,0.3769) --
(5.3,0.4266) --
(5.4,0.4805) --
(5.5,0.5403) --
(5.6,0.6032) --
(5.7,0.6708) --
(5.8,0.7433) --
(5.9,1) --
(6.1,1);
\foreach \index in {4,4.5,...,6}
\draw (\index,0.05) -- (\index,-0.05) node[below] {\index\,cm};
\foreach \index in {0,2000,...,10000}
\draw (4.05,\index/10000) -- (4-0.05,\index/10000) node[left] {\index};
\end{tikzpicture}
\end{document}