\hbox 未满警告

\hbox 未满警告

我是 LaTEX 新手。我正在自学,所以这可能是初学者的问题。我收到了警告:underfull \hbox (badness 10000) in paragraph

\documentclass[a4paper, 12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[utf8]{vietnam}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}

\title{\textbf{Tham gia giải bài \\ THÁCH THỨC KỲ NÀY}}
\author{(Tạp chí Pi Tập $5$ - Số $6$ - Tháng $6$ năm $2021$)}
\date{Nguyễn Tấn Phúc}

\begin{document}

    \maketitle
    
    \section{Thông tin cá nhân}
        \begin{flushleft}
            \begin{itemize}
                \item[-] \textit{Họ và tên}: Nguyễn Tấn Phúc
                \item[-] \textit{Lớp}: $8/1$
         
            \end{itemize}
        \end{flushleft}
    
    \section{Giải bài P514 (Mức B)}
        
        \begin{itemize}
            \item \textit{\textbf{Đề bài:}} Đặt $\phi = \dfrac{1 + \sqrt{5}}{2}$. Cho các số nguyên $a, b, c$ thỏa mãn:
            \[ \dfrac{a}{\phi} + \dfrac{b}{\phi^2} + \dfrac{c}{\phi^3} = \phi. \]
            Tính $2a + b + c$. 
                
            \item \textit{\textbf{Lời giải:}} \\
            Ta dễ dàng chứng minh được $\phi^2 - \phi - 1 = 0$, từ đó suy ra \\
            $$\dfrac{1}{\phi} = \phi - 1, \quad \dfrac{1}{\phi^2} = 1 - \dfrac{1}{\phi} = 2 - \phi, \quad \dfrac{1}{\phi^3} = \dfrac{1}{\phi} - \dfrac{1}{\phi^2} = 2\phi - 3$$ \\
            Giả thiết của bài toán tương đương với $a(\phi - 1) + b(2 - \phi) + c(2\phi - 3) = \phi$, hay 
            \[(a - b + 2c - 1)\phi = a - 2b + 3c.\]
            Vì $a - 2b + 3c$ là số hữu tỉ nên $(a - b + 2c - 1)\phi$ cũng là số hữu tỉ. Mà $\phi$ là số vô tỉ và $a - b + 2c - 1$ là số hữu tỉ nên $a - b + 2c = 1$. Do đó $a - 2b + 3c = 0$. Vậy $2a + b + c = 5(a - b + 2c) - 3(a - 2b + 3c) = \textbf{5}$.
                
        \end{itemize}
    
    \section{Giải bài P515 (Mức B)}
        \begin{itemize}
            \item \textit{\textbf{Đề bài:}} Trong hình dưới đây: $ABCD$ là hình vuông cạnh $2$; đường tròn $(O)$ có bán kính $1$ và tiếp xúc với $BC$ tại trung điểm $BC$, $M$ là một điểm di động trên $(O)$. Tìm giá trị lớn nhất của $AM$.
              
            \begin{figure}[ht]
                \label{fig:P515}
                \centering
                \includegraphics[scale = 0.35]{P515}
            \end{figure}
                
            \item \textit{\textbf{Lời giải:}} \\
            Gọi $N$ là trung điểm của đoạn thẳng $AD$. Khi đó ta dễ dàng tính được: \\
            $$AN = \dfrac{1}{2} \cdot AD = \dfrac{1}{2} \cdot 2 = 1$$ 
            $$ON = 2 + 1 = 3$$ \\
            Áp dụng định lí Pythagoras trong tam giác ANO vuông tại N, ta có: 
            $$OA = \sqrt{AN^2 + ON^2} = \sqrt{1^2 + 3^2} = \sqrt{10}$$ \\
            Sử dụng bất đẳng thức tam giác, ta có $AM \leq OA + OM = \sqrt{10} + 1 $. Đẳng thức xảy ra khi $M$ là điểm xa $A$ nhất trong hai giao điểm của $OA$ và $(O)$. Vậy giá trị lớn nhất của AM là $\sqrt{\textbf{10}} + \textbf{1}$.
            
        \end{itemize}     
        
      
\end{document}```


答案1

Underfull \hbox通常意味着 TeX 必须拉伸内容以填充一行,但这并不是文档中发生的情况。事实上,我们可以通过将内容简化为以下内容来复制此问题:

\documentclass{article}

\begin{document}
This is a test\\

\end{document}

问题是,\\当你不需要或不想这样做时,你会把 洒满整个文档。\\只需要在需要手动指定换行符的地方使用。\\样本文档中几乎¹ 的每个实例都应该被删除。特别是,如果你把 放在\\段落末尾(在显示数学之前实际上是段落结尾),LaTeX 将尝试用空字符填充段落的最后一行并发出你收到的警告。

你也可以使用\[...\]而不是$$...$$来表示显示数学。你可能还想使用以下方式排版显示方程式对

\begin{gather*}
AN = \frac{1}{2} \cdot AD = \frac{1}{2} \cdot 2 = 1\\
ON = 2 + 1 = 3
\end{gather*}

注意这里我们使用,\\因为我们要显示两行方程。另外,我将您的改为\dfrac\frac您应该\frac更喜欢而不是\dfrac,除非在那些您想强制获得通常不会得到的大分数的情况下。


  1. 真的吗,每一个实例应该被删除可能的标题中的一个除外。

答案2

后面跟着空行的用法\\是大多数 LaTeX 文档中的典型错误。上面的答案说不\\应该这样使用。我详细展示了在 TeX 级别会发生什么。

LaTeX默认定义\\为,它在几个不同的上下文中重新定义了这个控制序列(通常在上下文中是这样,但这不是我们现在感兴趣的重点)。\hfil\break\halign\cr

文本

... end of paragraph\\
<empty line>

TeX 将其解释为:... end paragraph\hfil\break<space>\par\par原语删除前一个<space>(如果存在)并添加\penalty10000\hskip\pafillskip。因此,我们有:

... end of paragraph\hfil\break\penalty10000\hskip\parfilskip

\hskip\parfillskip(默认情况下)插入在每个段落最后一行的灵活间隙。现在,TeX 运行段落中断例程来创建段落行。\break(确切地\penalty-10000)强制中断。此断点之后的所有可丢弃项都将被删除,即第一个\break被接受,后面的\penalty10000\hskip\parfillskip被删除。处理最后一个内部断点,从而完成段落中断算法。我们已强制\break在最后一个断点之后,因此会创建一个空行,其中没有内容,并且有\hsize宽度。这是不完整的\hbox

LaTeX 文档的作者之所以会犯这个错误,是因为他们通常想\vskip\bigskipamount在排版的这个位置插入(垂直空格)。他们意识到宏\vspace(在 LaTeX 手册中提到)会带来更多复杂性,因为它是由\vadjust原始定义的,即段落在此尚未完成。一般来说:插入此类排版例外情况是一种不好的做法。如果您在多个(定义得非常好的)位置都需要类似的东西\vskip\bigskipamount,请将其包含在排版设计中,并创建适当的宏和相关 TeX 参数的设置。

相关内容