> 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/xiang-xi-ji-shi/11-boxes-and-glue-a-brief-but-visual-introduction-using-luatex.md).

# Boxes and Glue：LuaTeXを使った簡潔で視覚的な入門

## 今後の記事のための導入

この記事は、〜を用いた組版に関わるいくつかの重要な概念／モデルへの簡単な導入です $$\mathrm \TeX$$：ボックスとグルー――今後、さらに詳しく扱う記事のための「舞台設定」です。近刊予定の記事では、〜の低レベルな挙動を詳しく見ていきます $$\mathrm \TeX$$ ボックスを使って $$\mathrm{Lua}\mathrm\TeX$$ 次の例のような図（ノードグラフ）を作成するために：

![ボックスのノードグラフ](/files/6d308a16fb58804cf1910d6c6f66a4492a6d23c7)

このノードグラフは、ある `\hbox{...}` 次のものを用いて作成された $$\mathrm \TeX$$ コード：

```latex

\hbox to100pt{A\hskip4pt plus3pt minus 2pt B%
\hskip 0pt plus 2fil C\hskip 0pt plus 2fill D\hskip 0pt plus 3fill}
```

これは次のように見えます（外接矩形付きで描画）：

![サンプル \hbox](/files/7ba717cabe882cdb5b82ccc23551cc4e9560a355)

これらのノードグラフは、〜の深い内部構造を示しています $$\mathrm \TeX$$ ボックス――それらが内部でどのように保存されているかを反映しています $$\mathrm \TeX$$ そして、次のようなボックス構築コマンドの動作をよりよく理解するのに役立つ、非常に貴重な図示による説明を提供します： `\hbox{...}` または `\vbox{...}`.

## 基本に戻る...

初心者でも、あるいは気軽な $$\mathrm \LaTeX$$ ユーザーでも、すぐに「〜」という概念に出会います $$\mathrm \TeX$$ 「ボックス」や、 $$\mathrm \TeX$$ は、その主要な組版処理に「ボックスとグルー」モデルを用いています。〜の組版アルゴリズムは $$\mathrm \TeX$$ その多くの時間を、ボックスの水平・垂直リストを作成し、それを積み重ねることに費やしています。たとえば、 $$\mathrm \TeX$$ が段落のテキストを組版して複数行に分割する際には、その段落のテキストをボックスの流れまたは列として扱い、それらの文字ボックス（実際にはグリフ）の幅・高さ・深さを使って最適な改行位置を見つけ、さらに組版されたテキストの各行の間に縦方向の空きを追加します（そのグルーは `\baselineskip`）。各行はそれ自体がボックス（他のボックス――たとえば文字――を含む）であり、組版された段落の各行（ボックス）は縦に積み重ねられて段落になります。やがて最も大きなボックス、つまり組版されたページが生成されます。もちろん、これは非常に単純化した説明です。というのも、それらのボックスを移動・配置する機能も必要であり、 $$\mathrm \TeX$$ これは、いわゆる *グルー*：いわば「柔軟な間隔」です。Knuth は（『The $$\mathrm \TeX \mathrm{book}$$」の70ページで）、「glue」はおそらく「spring」と呼ぶべきだったが、用語 glue は早い段階で採用され、Knuth の言葉遊びを借りれば、定着したのだと述べています。

## 〜を使って組版された段落を可視化する $$\mathrm{Lua}\mathrm\TeX$$

\graphicspath{...} を $$\mathrm{Lua}\mathrm\TeX$$、組版された段落は処理されて、それを組版するために使われた要素、つまり文字ボックスと、単語間にスペースを入れるための柔軟なグルーを表示できます。私たちは簡単な [$$\mathrm{Lua}\mathrm\TeX$$ （プレーン $$\mathrm \TeX$$）プロジェクト](https://www.overleaf.com/latex/examples/using-a-luatex-callback-to-parse-typeset-paragraphs/mzbpwxtjshsj) を作成して、これを示しています：

[![Screenshot of Overleaf](/files/10b7566b996725ba8db9813e3b14d6c288825dc7)](https://www.overleaf.com/latex/examples/using-a-luatex-callback-to-parse-typeset-paragraphs/mzbpwxtjshsj)

このプロジェクトのコードはこの記事を説明するために書かれたもので、段落の「パーサー」を完全に実装したものではありません。いくつもの $$\mathrm{Lua}\mathrm \TeX$$ ノード型を無視しており、この記事で述べる考え方を示すことだけを目的としています。

![ボックスとグルー](/files/42787b254fb7ca3db9e684fea336af2e402e0354)

下の拡大画像の部分では、各段落行が灰色の帯として陰影付きで表示されているのが見えます。行の間には空白があることに注意してください。これは縦方向のグルーで、 $$\mathrm \TeX$$ 段落を作るためにそれらを積み重ねる際に挿入されます。組版された段落の行間に挿入される縦方向のグルーについてもっと知りたいなら、Google で次を論じた記事を探してください： `\baselineskip` と `\lineskiplimit`.

![ボックスとグルーを示す解析済み段落](/files/e7c4887b71db8221f8fd00a60d4d0f222db4e37c)

プロジェクトを $$\mathrm \TeX$$ 段落を読み込んで組版すると、単語間のスペース文字は、正確な値が使用されているフォントの属性であるグルーの塊に変換されます。組版の過程では、見栄えのよい改行を実現するために必要と判断される量だけ、これらの単語間グルーが伸縮されます。上の画像では、次の点に注目してください：

* 灰色の帯は、組版された段落の各行の境界です。
* 各文字は、その寸法を定義するボックス内に表示されています（ $$\mathrm \TeX$$ が認識するように）。
* 黄色のボックスは、 $$\mathrm \TeX$$ が、見栄えのよい改行を実現するために単語間に挿入したグルーを示しています。次の点を見てください：
* 単語間グルーの幅は行ごとに異なります。これは $$\mathrm \TeX$$ が各改行を実現するためにそれを伸ばしたり縮めたりするからです。
* 3行目では、句点の後のグルーが同じ行の他のグルーより広くなっています。
* 赤いボックスは、明示的な `\hbox{...}` が使われた箇所を示しています。 `\TeX` コマンドは E を〜の中に入れ `\hbox{...}` ることで、下げて $$\mathrm \TeX$$ ロゴを作れるようにします。

例の段落の末尾には、次のように呼ばれる長いグルーの帯があります。 `\parfillskip`：これは $$\mathrm \TeX$$ エンジンによって、最後の行の空白を埋めるために挿入されます。 ![parfillskip glue](/files/e76f352f93a56480ad7f44efe78d3d5f9a4df0fc)

### 次回の記事まで

この記事が、〜で使われるボックスとグルーの原理について有益な導入となれば幸いです。 $$\mathrm \TeX$$。今後の記事では、 $$\mathrm{Lua}\mathrm\TeX$$ を使って、〜の内容をさらに深く掘り下げます。 $$\mathrm \TeX$$ ボックス――この記事の冒頭で示した例のようなノードグラフを使って。


---

# 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/xiang-xi-ji-shi/11-boxes-and-glue-a-brief-but-visual-introduction-using-luatex.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.
