> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/ja/narejjibsu/138-understanding-underfull-and-overfull-box-warnings.md).

# 不足・過剰ボックス警告を理解する

## はじめに

LaTeX文書を組版すると、Overleaf はしばしば、underfull または overfull を報告するメッセージを表示します `\hbox` （または `\vbox`）、およびいわゆる `badness` underfull ボックスの値、またはボックスが overfull である超過量です。まず重要なのは、これらのメッセージはエラーではないということです—[詳細は下記を参照してください](#overfull-or-underfull-boxes-are-not-errors)。これらは *警告* あるいは、より正確には、LaTeX文書を組版するために使用されている TeX エンジン内部から発せられる「診断メッセージ」です。

このヘルプ記事では、これらのメッセージの出どころと原因についての入門的な背景を説明し、よくある問題と推奨される解決策を挙げます。より詳しい内容に興味のある方には、Overleaf Gallery に関連記事を公開しています: [underfull または overfull ボックスと badness の計算を探る](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv)。追加の参考資料の一覧も [この記事の最後にあります](#further-reading).

## 私のプロジェクトには overfull または underfull の警告がありますか？

プロジェクトがこれらの警告を出しているか確認するには、下のスクリーンショットに示したアイコンをクリックする必要があります。文書はエラーなくコンパイルできていても、これらのメッセージが表示されるのは非常によくあることで、TeX/LaTeX にまだあまり慣れていない人なら、その意味や心配すべきなのかを疑問に思うかもしれません。

![Overleaf が underfull または overfull のボックスを報告している画面画像](/files/2f04e441db8f1738f93412f040614b2c366d4539)

文書を組版するとき、LaTeX はコンテンツの一部を、与えられた「サイズ」の境界内に収めようとします。たとえば、段落を組版し、行を一定の長さに折り返すときなどです。これは、次のようなコマンドを使うと最も分かりやすく示せます `\parbox`。次の段落を行幅 50pt で組版してみると:

```latex
\parbox{50pt}{\texttt{\string\parbox} を使って組版したテキスト}
```

Overleaf は 2 つの `Underfull \hbox...` 警告を報告します:

![Overleaf が underfull ボックスを報告している画面画像](/files/18a5cf01481480d4175855cef491ebe3478f82de)

これらの `Underfull \hbox...` これらの警告は、TeX エンジンがこの \parbox の制約内で「きれいな」改行を生成できないために発生します。TeX エンジン内部では、組版された段落の各行は \hbox となり、その後エンジンがそれをチェックして報告します。その結果、TeX エンジンが「望ましくない」と分類した組版済みテキストの行に対して警告が出ることがあります。

以下の画像で分かるように、テキストの行間は非常に広く空いており、TeX の `Underfull \hbox...` 警告はそのことを知らせてくれます—もっとも、この例ではそれは一目で分かります。

![parbox を示す画面画像](/files/f28a611444d195d178ce0defb308fe7210f8759f)

この例では、\raggedright を使えばこれらの警告を回避できます:

```latex
\parbox{50pt}{\raggedright \texttt{\string\parbox} を使って組版したテキスト}
```

![parbox を示す画面画像](/files/746ad071d115fb014f295db007769f8c5119274d)

## Overfull と underfull のボックス

この `\parbox` この例は、より一般的な問題を示しています。LaTeX コードを処理するとき、文書を組版するために使用されている TeX エンジン（pdfTeX、XeTeX、LuaTeX）は、LaTeX の要求によって、与えられた、または要求されたボックスの範囲内に「うまく収まらない」組版結果が生じると判断することがあります。その場合、TeX エンジンは警告を出し、内容は組版されますが、場合によっては見た目が美しくなく、修正が必要になるでしょう。これらのメッセージの意味を理解し、対処が必要なときを見分けられるようになることは大切です。

これらのボックス関連の警告は次の形式で表示されます

```
Overfull \hbox (<value>pt too wide) ... at line(s) ...
Overfull \vbox (<value>pt too high) ... at line(s) ...
Underfull \hbox (badness <value> ) ... at line(s) ...
Underfull \vbox (badness <value>) ... at line(s) ...
```

1 つの `\hbox` は〜を指します *横ボックス* TeX エンジンが項目の一覧を横に並べて配置するもので、 `\vbox` は〜を指します *縦ボックス* TeX エンジンが項目を上下に積み重ねて配置するものです。

内容が少なすぎる場合、TeX エンジンは `Underfull \hbox` の警告、または `Underfull \vbox` の警告を報告します:

* **Underfull ボックス** underfull ボックスには、その中に収めるために割り当てられた（ボックスの）寸法を満たすだけの内容が十分にありません。TeX エンジンは、その空間を埋めようとして内容を「引き伸ばす」必要がありました。underfull ボックスについて Overleaf は、TeX のいわゆる「badness」（`badness <value>`）も報告します。これは、その空間を埋めるために TeX が内容をどれだけ「引き伸ばす」必要があったかの尺度です。badness の値は通常 0 から 10000 の範囲です。

内容が多すぎる場合、TeX エンジンは \`Overfull \hbox\` の警告、または \`Overfull \vbox\` の警告を報告します:

* **Overfull ボックス** overfull ボックスには、その中に収めるために割り当てられた（ボックスの）寸法よりも多くの内容があり、TeX はそれを与えられた空間に「押し込む」ことができません。TeX エンジンは、利用可能な空間を超えている量（`<value>`）をポイント単位で報告します。つまり、内容が利用可能な空間をどれだけ超えているかということで、ある `\hbox` に対して幅が広すぎるか、ある `\vbox`.

## Overfull または underfull のボックスはエラーではありません

前述のとおり、overfull/underfull `\hbox` または `\vbox` メッセージは、LaTeX 文書を組版するために使用されている TeX エンジン（pdfTeX、XeTeX、LuaTeX）が出力する「診断用の警告メッセージ」であって、エラーではありません。Overleaf に *表示される* これらの警告は Overleaf によって *生成された* Overleaf によるものではありません。これらは TeX エンジン内部で発生します。組版中、これらのメッセージは `.log` ファイルに書き込まれます。.log ファイルは、TeX エンジンが LaTeX コードを処理する際にさまざまな情報を記録するために生成するテキストファイルです。Overleaf は `.log` そのファイルを処理して、TeX エンジンの overfull/underfull `\hbox` または `\vbox` 警告メッセージを抽出し、Overleaf のインターフェース内に表示します。これにより、最良の組版結果を得るために編集が必要かもしれない文書の部分を特定しやすくなります。

## これらの警告を気にするべきでしょうか？

TeX/LaTeX に慣れていないユーザーは、これらの警告を見て、自分の文書に深刻な問題があるのではないかと心配するかもしれませんが、多くの場合、そのほとんどは安全に無視できます。ただし、これらの警告は、文書の中で確認すべき箇所や、見た目の組版結果を改善するために編集が必要な箇所を示していることもあります。

これらのメッセージを解釈するには少し慣れが必要です。TeX/LaTeX が初めてなら、警告を生成したソースコード上の箇所を見つけることで経験を積む時間を取るとよいでしょう。そうすれば、対処すべき問題を示している警告を見分けるコツがすぐに身につきます。

## 警告の原因箇所はどう見つければよいですか？

1. Overleaf のインターフェース内で警告メッセージをクリックすると、エディタはあなたの LaTeX ソースコード内の該当位置までスクロールします。
2. ソースコード上のその位置の左側には、感嘆符（!）が入った小さな黄色い三角形が表示されます。
3. その三角形の上にマウスポインタを置くと、Overleaf が警告メッセージを表示します。

この短い動画クリップで上記の手順を示しています。

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/1S1CW2vbVGRHnCXmsbjgAX/096e314caba0c1bafb762a528761e24d/findwarning.mp4>" %}

## 自分の LaTeX コードに対応する PDF 上の位置はどうやって見つければよいですか？

特定の警告を生成した LaTeX コードを見つけたら、エディタと組版済み PDF を表示するパネルを分けているスプリッターバー上にある矢印を使って、PDF の該当箇所へ移動できます。

![parbox を示す画面画像](/files/10c50c4136d354cea3b0ec91cadb20b4a7be40f1)

これらの矢印が見えない場合は、ヘルプ記事 [ソースコードから組版済み PDF へジャンプする方法（SyncTeX）](/latex/ja/narejjibsu/069-how-to-jump-to-the-source-code-from-the-typeset-pdf-synctex.md) で有効化する方法を説明しています。

## よくある問題とその修正方法

* 以下を使用できます。 [microtype パッケージ](https://ctan.org/pkg/microtype?lang=en) pdfTeX によって導入されたマイクロタイポグラフィ拡張を活用し、より高品質な組版を実現でき、その結果、問題のあるボックスが減ることもあります。
* URL と改行に問題がある場合は、次のオプションを追加できます `breaklinks` を `hyperref` パッケージを使ったサンプルコードです： `\usepackage[breaklinks]{hyperref}`.
* 同様に `\parbox`, `minipage` 環境では、TeX エンジンが段落を行に分割しようとすると、overfull または underfull のボックス警告が発生することがあります:

```latex

\begin{minipage}{width}
テキスト...
\end{minipage}
```

可能であれば、 `width` の値を大きくして、TeX エンジンが適切な改行を生成しやすくしてください—そして/または [microtype パッケージ](https://ctan.org/pkg/microtype?lang=en).

### \\\ の使用に関する注意

`\\` はマクロ（制御記号）であり、その厳密な定義は使用される文脈によって異なる場合があります---優れた解説はこの [tex.stackexchange の回答](https://tex.stackexchange.com/a/55481).

* `\\` 段落間に縦方向の空白を追加するために使うべきではありません。そのようにするのは非常に悪い慣行とされています。
* `\\` は改行専用です（Microsoft Word の Shift+Enter に似ています）。LaTeX で新しい段落を作る正しい方法は、ソースコード内で段落を空行で区切ることです。
* を使うのではなく `\\` （または `\newline`/`\vspace`）を段落区切りの代用にしたり、段落間スペースを増やしたりするのではなく、段落間の間隔を設定する推奨方法は [parskip](https://ctan.org/pkg/parskip) パッケージを読み込むことです。 `\usepackage{parskip}` を文書のプリアンブルに入れてください。
* 文書全体で `\\` 文書内の段落全体でこれを使うと、フロートの配置場所やページ分割などの最適位置を計算する LaTeX のアルゴリズムの妨げになり、大きな文書ではコンパイルエラーの原因になることがあります。
* の正当な使用例は `\\` に関する回答で説明されています [質問で](https://tex.stackexchange.com/)。たとえば、次を参照してください:
  * [いつ使うべきか `\par` と、いつ `\\`, `\newline`、または空行](https://tex.stackexchange.com/a/82666)
  * [は何をするのか `\\*` ？](https://tex.stackexchange.com/a/55481)

## TeX がどのボックスを報告するかを制御する

TeX エンジンには、TeX のヒューリスティックを導き、TeX が報告する前にボックスがどの程度「悪い」必要があるかの閾値を設定するための低レベルなプリミティブコマンドがいくつか用意されています。これらのコマンドに興味のある読者向けのリンクをいくつか挙げます:

* [\hfuzz と \vfuzz](/latex/ja/tex-latexpurimitibu/06-hfuzz.md)
* [\hbadness と \vbadness](/latex/ja/tex-latexpurimitibu/05-hbadness.md)

## さらに読む

TeX におけるボックスと glue の使用についてさらに背景を読みたい方は、以下の資料を参照してください:

* Overleaf の記事 [TeX が \hbox 内の glue 設定をどのように計算するか](/latex/ja/xiang-xi-ji-shi/24-how-tex-calculates-glue-settings-in-an-hbox.md).
* このヘルプ項目に付随して書かれた 17 ページの Overleaf 記事: [underfull または overfull ボックスと badness の計算を探る](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv)。その記事では TeX のプリミティブ `\hfuzz` や `\hbadness`.
* TeX FAQ の <https://texfaq.org/FAQ-overfull.html>.
* [質問で](https://tex.stackexchange.com/) には、TeX/LaTeX の第一人者による豊富なアドバイスが掲載されています。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/ja/narejjibsu/138-understanding-underfull-and-overfull-box-warnings.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
