> 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/shu-shi-she-ding/04-articles-how-to-change-paragraph-spacing-in-latex.md).

# 段落の書式設定

## はじめに

この記事では、段落間隔のさまざまな側面に変更を加える2つの方法を紹介します:

* LaTeXパッケージを使う、最善かつ推奨される方法、たとえば [`setspace`](https://ctan.org/pkg/setspace) と [`parskip`](https://ctan.org/pkg/parskip) などを使い、LaTeX文書の間隔を変更するためのオプションとユーザーレベルのコマンドを提供します;
* 低レベルの TeX/LaTeX *パラメータコマンド* を使って段落間隔を変更する方法。パラメータコマンドを直接使うと、注意深く作られた LaTeX パッケージが提供するチェックや制御を回避できるため、LaTeX文書の他の箇所で予期しない結果／副作用が生じる可能性があります。そのため、注意して使ってください...

### 興味のあるセクションへ移動

すぐに解決策を探している読者は、

* 次のセクションへ [*LaTeXパッケージの使用: setspace と parskip*](#using-latex-packages-setspace-and-parskip)

低レベルコマンドに興味がある読者は、

* 次のセクションへ [*TeX/LaTeX のパラメータコマンド*](#using-texlatex-parameter-commands) と [*基本事項: パラメータコマンドと例*](#the-fundamentals-parameter-commands-and-examples)

行間計算と段落構造の細部に興味がある読者は、

* 次のセクションへ [*段落構造と行間計算*](#paragraph-structure-and-line-space-calculations)

## LaTeXパッケージの使用: setspace と parskip

* [parskip パッケージ](#the-parskip-package)
* [setspace パッケージ](#the-setspace-package)

### parskip パッケージ

その [`parskip` パッケージ](https://ctan.org/pkg/parskip?lang=en) は、文書内の段落間に挿入される空きを安全に変更できるようにします。これは、目次、リスト環境、ディスプレイ見出しなどの文書構造が、 [`\parskip` コマンド](#parskip-tex-primitive)の非ゼロ値によって悪影響を受けないようにすることを目的としています。これは、TeX/LaTeX が段落間に挿入する空き量を設定するために使われます。

その `parskip` パッケージにはユーザーレベルのコマンドはありません。その代わり、パッケージオプションを使って動作を設定します。 [`parskip` ドキュメント](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/parskip/parskip.pdf) は短く、わずか3ページですが、以下にパッケージオプションの簡単な要約を示します:

* **`skip`**: を指定します `\parskip`、段落間の縦方向の空き;
* **`tocskip`**: 非ゼロの `\parskip` 値を指定して `\tableofcontents` や同様のリストで使用します;
* **`indent`**: の値を設定します `\parindent`、段落のインデント;
* **`parfill`**: の値を調整します `\parfillskip`、段落の最後の行の末尾に追加されるグルー。

デフォルトでは、 `parskip` パッケージは `\parindent` を `0pt` に設定し、非ゼロの `\parskip` 値として `.5[\baselineskip](#baselineskip-tex-primitive) plus 2pt`.

#### parskip パッケージの例

以下の例では、 `parskip` パッケージのいくつかの使い方を示します。Overleafを使って例を開き、コンパイルするには、「Overleafで開く」リンクを選択してください。

**parskip パッケージの最小例**

以下の最小例では `parskip` パッケージを読み込み、 [`blindtext` パッケージ](https://ctan.org/pkg/blindtext?lang=en)で作成した2つの段落を組版します。この例では、 `\baselineskip`, `\parskip` と `\parindent`のデフォルト値も組版しています。2つの段落の間の空き量は、 `\parskip`:

```latex
\documentclass{article}
% 適当な小さめのページサイズを選ぶ
\usepackage[paperheight=16cm,paperwidth=14cm,textwidth=12cm]{geometry}
% ダミーテキスト用の blindtext パッケージを読み込む
\usepackage{blindtext}
% オプションなしで parskip パッケージを読み込む
\usepackage{parskip}
\begin{document}

\blindtext[1]\par % \par を使って新しい段落を強制する
\blindtext[1]

\verb|\parindent| の値は \texttt{\the\parindent} です。他の値は次のとおりです:

\begin{itemize}
\item \verb|\baselineskip| の値は \texttt{\the\baselineskip} です
\item \verb|\parskip| の値は \texttt{\the\parskip} です
\end{itemize}
\end{document}
```

&#x20;[この例をOverleafで開く](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+parskip+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+parskip+package+without+options%0A%5Cusepackage%7Bparskip%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cblindtext%5B1%5D%5Cpar+%25Use+%5Cpar+to+force+a+new+paragraph%0A%5Cblindtext%5B1%5D%0A%0AThe+value+of+%5Cverb%7C%5Cparindent%7C+is+%5Ctexttt%7B%5Cthe%5Cparindent%7D.+Here+are+the+other+values%3A%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+The+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D%0A%5Citem+The+value+of+%5Cverb%7C%5Cparskip%7C+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![parskip の LaTeX パッケージ使用例](/files/82396e898d6df5e91df29dd4f1bd2cf8a88f54dd)

注意: `\parskip` グルーには通常、伸縮可能な [グルー成分](#a-few-notes-on-glue) が含まれます。これは、LaTeX がページ上に内容を収め、最良の（最適な）改ページを生成するのに役立つためです。

**parskip パッケージオプションの使用**

以下の例では、 `parskip` パッケージを `skip` と `indent` オプションを使って読み込み、設定します。また、 [`blindtext` パッケージ](https://ctan.org/pkg/blindtext?lang=en)、そして次の値を組版します `\baselineskip`, `\parskip` と `\parindent`.

```latex
\documentclass{article}
% 適当な小さめのページサイズを選ぶ
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% ダミーテキスト用の blindtext パッケージを読み込む
\usepackage{blindtext}
% skip と indent オプションを使って parskip パッケージを読み込む
\usepackage[skip=10pt plus1pt, indent=40pt]{parskip}
\begin{document}

\blindtext[1]\par % \par を使って新しい段落を強制する
\blindtext[1]

\verb|\parindent| の値は \texttt{indent} オプションで設定されたので、現在は \texttt{\the\parindent} です。他の値は次のとおりです:

\begin{itemize}
\item \verb|\baselineskip| は \texttt{\the\baselineskip} です
\item \verb|\parskip| は \texttt{skip} オプションで設定されたので、その値は \texttt{\the\parskip} です
\end{itemize}
\end{document}
```

&#x20;[この例をOverleafで開く](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+parskip+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+parskip+package+with+skip+and+indent+options%0A%5Cusepackage%5Bskip%3D10pt+plus1pt%2C+indent%3D40pt%5D%7Bparskip%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cblindtext%5B1%5D%5Cpar+%25+Use+%5Cpar+to+force+a+new+paragraph%0A%5Cblindtext%5B1%5D%0A%0AThe+value+of+%5Cverb%7C%5Cparindent%7C+was+set+via+the+%5Ctexttt%7Bindent%7D+option%2C+so+it+is+now+%5Ctexttt%7B%5Cthe%5Cparindent%7D.+The+other+values+are%3A%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D%0A%5Citem+%5Cverb%7C%5Cparskip%7C+was+set+via+the+%5Ctexttt%7Bskip%7D+option%2C+so+its+value+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![parskip の LaTeX パッケージ使用例 その2](/files/f22b9824180cecc99766378a67e887611fc1229d)

### setspace パッケージ

その [`setspace` パッケージ](https://ctan.org/pkg/setspace?lang=en) は、文書の本文の行間を変更するためのコマンドと環境を提供します。以下は、 `setspace`:

* が提供する主なコマンドと環境の簡単な要約です **`\singlespacing`**, **`\onehalfspacing`** と **`\doublespacing`** は、文書のプリアンブルでも本文中でも使えて、文書の一部または全体の行間を変更できます;
* その **`\setstretch{*baselinestretch amount*}`** コマンドは、 [`\baselinestretch`](#demonstrating-baselinestretch)への変更を通じて、カスタムの行間を設定します。これも文書のプリアンブルで使えます;
* 環境 **`singlespace`**, **`singlespace*`** **`onehalfspace`** と **`doublespace`** は、文書本文の選択した部分の行間を変更できます;
* その **`\SetSinglespace{*value*}`** コマンドは `*value*` を使って、単一行間隔を調整し、その点サイズに対して文字形状（「グリフ」）が比較的小さい、または大きいフォントで組版されたテキストの行間に合わせます。セクション [*フォントとポイントサイズに関する簡単な注意*](#brief-notes-on-fonts-and-point-size) を参照してください。与えられたポイントサイズでのフォントのグリフサイズの違いを示す図があります;
* その **`spacing`** 環境はカスタムの行間を提供し、1つの引数が必要です: [`\baselinestretch` 値](#demonstrating-baselinestretch) を使用します; 例えば:

```latex
\begin{spacing}{2.5}
...
...
\end{spacing}
```

#### setspace パッケージの例

以下の例では、 `setspace` パッケージ: 例をOverleafで開いてコンパイルするには、「Overleafで開く」リンクをクリックしてください。

**文書のプリアンブルで \doublespacing を使用する**

```latex
\documentclass{article}
% 適当な小さめのページサイズを選ぶ
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% ダミーテキスト用の blindtext パッケージを読み込む
\usepackage{blindtext}
% setspace パッケージを読み込む
\usepackage{setspace}
% プリアンブルで \doublespacing を使用する
% テキストを2行送りにする
\doublespacing
\begin{document}
\blindtext[1]
\end{document}
```

&#x20;[これを開く `setspace` Overleaf での例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+doublespacing+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%25+Using+%5Cdoublespacing+in+the+preamble+%0A%25+changes+text+to+double+line+spacing%0A%5Cdoublespacing%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![setspace の \doublespacing コマンドの例](/files/2a71bc4fba589941d098e547fad236450c647201)

**spacing 環境の使用**

以下のコードは3ページに組版されるため、下の「Overleafで開く」リンクを選んでOverleaf上で出力を見るのが望ましいです。

```latex
\documentclass{article}
% 適当な小さめのページサイズを選ぶ
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% ダミーテキスト用の blindtext パッケージを読み込む
\usepackage{blindtext}
% setspace パッケージを読み込む
\usepackage{setspace}
% プリアンブルで \doublespacing を使用する
% テキストを2行送りにする
\doublespacing
\begin{document}
\blindtext[1]

では、\verb|\baselinestretch| の値を3にして、より大きい（カスタム）行間を適用します:

\begin{verbatim}
\begin{spacing}{3}
\blindtext[1]
\end{spacing}
\end{verbatim}

\begin{spacing}{2.5}
\blindtext[1]
\end{spacing}
では、\verb|\singlespacing| に戻します\singlespacing\blindtext[1]
\end{document}
```

&#x20;[これを開く `setspace` Overleaf での例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+various+setspace+commands\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%25+Using+%5Cdoublespacing+in+the+preamble+%0A%25+changes+text+to+double+line+spacing%0A%5Cdoublespacing%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D%0A%0ANow%2C+apply+a+larger+%28custom%29+spacing+by+applying+a+%5Cverb%7C%5Cbaselinestretch%7C+value+of+3%3A%0A%0A%5Cbegin%7Bverbatim%7D%0A%5Cbegin%7Bspacing%7D%7B3%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0A%5Cend%7Bverbatim%7D%0A%0A%5Cbegin%7Bspacing%7D%7B2.5%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0ANow%2C+revert+to+%5Cverb%7C%5Csinglespacing%7C%5Csinglespacing%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

**singlespace\* 環境の使用**

記事 [*行間に関する簡単な注意*](https://texblog.org/2011/09/30/quick-note-on-line-spacing/)で述べたように、 `setspace` パッケージには星付き（`singlespace*`）版と星なし版の `singlespace` 環境があります。 `setspace` パッケージコード内のコメントでは、 `singlespace*` 環境は「... itemize および quote 環境の周囲に改善された縦方向の空きを与える」ように設計されていると述べています。

次の例では、2つの `minipage` 環境に含まれる箇条書きリストを左右に並べて、 `singlespace` と `singlespace*` 環境によって生成される異なる間隔を示します。

```latex
\doublespacing
\blindtext[1]

\begin{minipage}{.4\textwidth}
\begin{singlespace}
ここに箇条書きリストがあります\par（\texttt{singlespace} 環境）。
\begin{itemize}
\item 1
\item 2
\item 3
\end{itemize}
\end{singlespace}%
リストは終わりました。
\end{minipage}\kern10pt%
\begin{minipage}{.4\textwidth}
\begin{singlespace*}
ここに箇条書きリストがあります\par（\texttt{singlespace*} 環境）。
\begin{itemize}
\item 1
\item 2
\item 3
\end{itemize}
\end{singlespace*}
リストは終わりました。
\end{minipage}
```

&#x20;[これを開く `setspace` Overleafでの例](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+starred+singlespace+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cdoublespacing+%0A%5Cblindtext%5B1%5D%0A%0A%5Cbegin%7Bminipage%7D%7B.4%5Ctextwidth%7D%0A%5Cbegin%7Bsinglespace%7D%0AHere+is+a+bulleted+list%5Cpar+%28%5Ctexttt%7Bsinglespace%7D+environment%29.%0A%5Cbegin%7Bitemize%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bsinglespace%7D%25%0AThe+list+has+ended.%0A%5Cend%7Bminipage%7D%5Ckern10pt%25%0A%5Cbegin%7Bminipage%7D%7B.4%5Ctextwidth%7D%0A%5Cbegin%7Bsinglespace%2A%7D%0AHere+is+a+bulleted+list%5Cpar+%28%5Ctexttt%7Bsinglespace%2A%7D+environment%29.%0A%5Cbegin%7Bitemize%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bsinglespace%2A%7D%0AThe+list+has+ended.%0A%5Cend%7Bminipage%7D%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![LaTeX の singlespace\* 環境の例](/files/b42ec877825de24915f0915d14df320a0a320d75)

**\setstretch コマンドの使用**

`\setstretch{*value*}` の値を設定し `\baselinestretch` を *値* 、 *即時の* 変更を `\baselineslip` によって `\baselinestretch`。以下の例では `\setstretch{1.618}`— 1.618 という奇妙な値は [記事の後半で説明します](#understanding-and-calculating-values-for-baselinestretch)...

```latex
% 1.618 という奇妙な数値は、記事の後半で説明します。
\setstretch{1.618}
\verb|\setstretch{1.618}| と書くと、行間が即座に変更されます。もし \verb|\renewcommand{\baselinestretch}{1.618}| と書いた場合は、\verb|\selectfont| のようなフォント変更コマンドが使われるまで行間は変更されません。

\blindtext[1]
```

&#x20;[これを開く `setspace` Overleaf での例。](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+setstretch+command\&snip=%5Cdocumentclass%5B11pt%5D%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0A%25+The+strange+figure+of+1.618+is+explained+later+in+the+article.%0A%5Csetstretch%7B1.618%7D%0AWe+write+%5Cverb%7C%5Csetstretch%7B1.618%7D%7C+to+cause+an+immediate+change+to+the+line+spacing.+If+we+wrote+%5Cverb%7C%5Crenewcommand%7B%5Cbaselinestretch%7D%7B1.618%7D%7C+the+line+spacing+would+not+be+modified+until+a+font-changing+command%2C+such+as+%5Cverb%7C%5Cselectfont%7C%2C+is+used.%0A%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![\setstretch コマンドの例](/files/f85ac483a537160d4f29e8af9852ed8bc81e4a7b)

**\SetSinglespace コマンドの使用**

次のプロジェクトは LuaLaTeX でコンパイルされ、 `fontspec` パッケージを使って TeX Gyre Pagella フォントにアクセスします。TeX Gyre Pagella で組版した2つの段落を比較します。最初の段落はデフォルトの1行間隔を使い、2つ目は `\SetSinglespace{1.1}`を適用したことで、より大きい1行間隔になっています。人によっては、わずかに「開いた」感じの2つ目の段落のほうを好み、読みやすさが向上すると感じるかもしれませんが、もちろんこれは個人の好みの問題です。

```latex
\section*{Computer Modern のデフォルト1行間隔}
通常のテキストです。\blindtext[1]
\setmainfont{TeX Gyre Pagella}
\section*{TeX Gyre Pagella のデフォルト1行間隔}
こちらは通常のテキストです。\blindtext[1]
\section*{TeX Gyre Pagella の調整済み1行間隔}
注意: \verb|\SetSinglespace{1.1}| を書いた後に \verb|\singlespacing| を発行する必要があります
\verb|\SetSinglespace{1.1}|\SetSinglespace{1.1}\singlespacing
\begin{singlespace*}
こちらは通常のテキストです。\blindtext[1]
\end{singlespace*}
```

&#x20;[これを開く `setspace` Overleaf での例。](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Example+use+of+the+SetSinglespace+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csection%2A%7BComputer+Modern+default+single+spacing%7D%0ASome+regular+text.+%5Cblindtext%5B1%5D%0A%5Csetmainfont%7BTeX+Gyre+Pagella%7D%0A%5Csection%2A%7BTeX+Gyre+Pagella+default+single+line+spacing%7D%0AHere+is+some+regular+text.+%5Cblindtext%5B1%5D%0A%5Csection%2A%7BTeX+Gyre+Pagella+adjusted+single+line+spacing%7D%0ANote%3A+we+need+to+issue+%5Cverb%7C%5Csinglespacing%7C+after+writing++%0A%5Cverb%7C%5CSetSinglespace%7B1.1%7D%7C%5CSetSinglespace%7B1.1%7D%5Csinglespacing%0A%5Cbegin%7Bsinglespace%2A%7D+%0AHere+is+some+regular+text.+%5Cblindtext%5B1%5D%0A%5Cend%7Bsinglespace%2A%7D%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![LaTeX の \SetSinglespace コマンドのデモ](/files/de8fe64047e736f94c1e352668e89d554914ea54)

次のセクションでは、コマンド `\baselinestretch` と `\linespread`.

#### \baselinestretch と \linespread の理解

行間やフォント変更（フォントサイズ、フォントファミリー、フォントエンコーディングなど）を扱う LaTeX の設計の一部では、見かけることのある2つのコマンドが使われています:

* **`\baselinestretch`**: このコマンドは、現在の [`\baselineskip`](#baselineskip-tex-primitive)の値を掛ける（スケーリングする）ために使われるスケーリング係数を保存します。そのスケーリングは通常、 *次回* のようなフォント選択コマンドが使われたときに適用されます `\selectfont`。 `\baselinestretch` によって保存された値を変更するには、 `\renewcommand{\baselinestretch}{*scale*}`
  * **注**: もし `\renewcommand{\baselinestretch}{*scale*}` を文書の本文で書いたなら、 `\baselinestretch` [はすぐには有効になりません](https://tex.stackexchange.com/questions/241120/why-does-changing-baselinestretch-not-change-line-spacing): 新しい `*scale*` 係数は将来の使用のために保存されます。新しい`*scale*` の値をすぐに使う／適用するには、 `\selectfont` で示したように [以下のコード断片](#demonstrating-baselinestretch).
* **`\linespread{*scale*}`**: を変更するために使えます [`\baselineskip`](#baselineskip-tex-primitive) を現在のフォントサイズに影響を与えずに。このコマンドは `\baselinestretch` を `*scale*` を設定し、その後 `\baselineskip` を `*scale* × [\baselineskip](#baselineskip-tex-primitive)`を変更します。ただし、そのスケーリングも `\linespread` コマンドが文書のプリアンブルで使われない限り、すぐには行われません。もし `\linespread` が文書の本文で使われた場合は、次のフォントサイズ変更／選択コマンドが使われた後に有効になります。

以上を踏まえると、次のいずれかが

* `\renewcommand{\baselinestretch}{*scale*}\selectfont` または、
* `\linespread{*scale*}\selectfont`

が行間を変更するために使えます。どちらも、下の例で示すようにフォントサイズの変更をまたいで機能します。では、どちらを使うべきでしょうか？参照先は [tex.stackexchange のこの短い議論](https://tex.stackexchange.com/a/241121).

**\linespread のデモ**

以下の例では `\linespread{2.5}` を文書のプリアンブルで使い、追加のフォント選択コマンドを必要とせずに行間を変更しています:

```latex
\documentclass{article}
% 適当な小さめのページサイズを選ぶ
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% ダミーテキスト用の blindtext パッケージを読み込む
\usepackage{blindtext}
% プリアンブルで \linespread を使うと
% 行間が
% \selectfont のような追加のフォント選択コマンドを必要とせずに
\linespread{2.5}
\begin{document}
\blindtext[1] % 行は \linespread{2.5} の影響を受けます
\end{document}
```

&#x20;[この例をOverleafで開く](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+linestretch+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Using+%5Clinespread+in+the+preamble+changes+%0A%25+line+spacing+without+requiring+additional%0A%25+font-selection+commands%2C+such+as+%5Cselectfont%0A%5Clinespread%7B2.5%7D+%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D+%25+The+lines+are+affected+by+%5Clinespread%7B2.5%7D%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![\linespread コマンドの使用](/files/7ddea474b0c4e85ad9765079c2b9a92014ec8fe0)

\graphicspath{...} を `\linespread{2.5}` を文書の本文で（ `\begin{document}`) *の後に）使うと* 、行間の変更を発生させるにはフォント選択コマンドが必要になります。以下のコードをOverleafで開き、前の例と出力を比較してください:

```latex
次の \verb|\linespread| コマンドは文書の本文で使われているため、行間を変更するにはフォント選択コマンドが必要です。違いを見るには \verb|\selectfont| のコメントアウトを外してください:

\linespread{2.5}%\selectfont

% \selectfont がないと、以下の段落の行は
% \linespread{2.5} の影響を受けません:
\blindtext[1]
```

&#x20;[この例をOverleafで開く](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Second+example+using+the+linestretch+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0ABecause+the+following+%5Cverb%7C%5Clinespread%7C+command+is+used+in+the+document+body%2C+a+font-selection+command+is+required+to+change+the+line+spacing.+Un-comment+%5Cverb%7C%5Cselectfont%7C+to+see+the+difference%3A%0A%0A%5Clinespread%7B2.5%7D%25%5Cselectfont%0A+%0A%25+Without+%5Cselectfont+the+following+paragraph+lines+are+%0A%25+unaffected+affected+by+%5Clinespread%7B2.5%7D%3A+%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![文書内で LaTeX の \linespread コマンドを使う](/files/ec3c90b950e08f3ca4515d2a05402736186f0ffa)

**\baselinestretch のデモ**

以下の例では `\baselinestretch` と `\selectfont` 対応する [`\baselineskip`](#baselineskip-tex-primitive):

```latex
への影響を示します。\verb|\baselineskip| のデフォルト値は \the\baselineskip です。さて \verb|\baselinestretch| を更新します \renewcommand\baselinestretch{2.5}。しかし、

\vspace{5pt}
\verb|\renewcommand\baselinestretch{2.5}|
\vspace{5pt}

\noindent したにもかかわらず、まだ何の効果もありません: \verb|\baselinestretch| の新しい値は保存されていますが、まだ適用されていません。変更を有効にするには \verb|\selectfont| コマンドを発行できますが、現時点では \verb|\baselineskip| の値はまだ \the\baselineskip{}（変更なし）です。

ここで \verb|\selectfont| を実行すると、\verb|\baselinestretch| を2.5に設定した変更が、段落の途中であっても有効になります――\selectfont。さて、\verb|\baselineskip| の値は \the\baselineskip{}（= \(2.5 \times 12=30\mathrm{pt}\)）です。

フォントサイズを14ptに、\verb|\baselineskip| を16ptに \verb|\fontsize{14}{16}\selectfont| を使って変更するとどうなるでしょうか？

\fontsize{14}{16}\selectfont すると、\verb|\baselineskip| は16ptではなく \the\baselineskip{} です。これは \verb|\baselinestretch| の値（2.5）が保持されて適用されているためで、\verb|\baselineskip| = \(2.5 \times 16=40\mathrm{pt}\) となります。

\section{\texttt{\bfseries\string\linespread}}
\verb|\linespread| コマンドは、フォントサイズを変更せずに \verb|\baselineskip| を変更するために使えます。
```

&#x20;[この例をOverleafで開く](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demonstrating+baselinestretch\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D16cm%2Ctextwidth%3D14cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0AThe+default+value+of+%5Cverb%7C%5Cbaselineskip%7C%3D%5Cthe%5Cbaselineskip.+Now+update+%5Cverb%7C%5Cbaselinestretch%7C%5Crenewcommand%5Cbaselinestretch%7B2.5%7D.+However%2C+although+we+have+executed%0A%0A%5Cvspace%7B5pt%7D%0A%5Cverb%7C%5Crenewcommand%5Cbaselinestretch%7B2.5%7D%7C+%0A%5Cvspace%7B5pt%7D%0A%0A%5Cnoindent+it+%5Ctextit%7Bhas+not%7D+%28yet%29+had+any+effect%3A+the+new+value+of+%5Cverb%7C%5Cbaselinestretch%7C+is+stored%2C+but+not+actioned.+We+can+issue+a+%5Cverb%7C%5Cselectfont%7C+command+to+make+the+change+take+effect%3B+but%2C+for+now%2C+the+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+still+%5Cthe%5Cbaselineskip%7B%7D+%28unchanged%29.+%0A%0AIf+we+now+execute+%5Cverb%7C%5Cselectfont%7C+the+change+to+%5Cverb%7C%5Cbaselinestretch%7C%2C+setting+it+to+2.5%2C+will+now+take+effect---%5Cselectfont+even+though+we+are+in+the+middle+of+a+paragraph.+Now%2C+the+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+%5Cthe%5Cbaselineskip%7B%7D+%28%3D+%5C%282.5+%5Ctimes+12%3D30%5Cmathrm%7Bpt%7D%5C%29%29.%0A%0AWhat+happens+if+we+change+the+font+size+to+14pt+and+%5Cverb%7C%5Cbaselineskip%7C+to+16pt+using+the+commands+%5Cverb%7C%5Cfontsize%7B14%7D%7B16%7D%5Cselectfont%7C%3F+%0A%0A%5Cfontsize%7B14%7D%7B16%7D%5Cselectfont+Now%2C+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctextit%7Bnot%7D+16pt+but+%5Cthe%5Cbaselineskip%7B%7D+because+the+value+of++%5Cverb%7C%5Cbaselinestretch%7C+%282.5%29+has+been+preserved+and+applied%2C+giving+%5Cverb%7C%5Cbaselineskip%7C+%3D+%5C%282.5+%5Ctimes+16%3D40%5Cmathrm%7Bpt%7D%5C%29.%0A%0A%5Csection%7B%5Ctexttt%7B%5Cbfseries%5Cstring%5Clinespread%7D%7D%0AThe+%5Cverb%7C%5Clinespread%7C+command+can+be+used+to+modify+%5Cverb%7C%5Cbaselineskip%7C+without+changing+the+font+size.%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![\baselinestretch のデモ](/files/42d453794e9879444b9fe905ab91a00136ce75ea)

#### setspace パッケージでは「行間」はどのように定義され、変更されるのでしょうか？

その *正確な* 定義と *測定* が、「行間」の解釈次第であるため、ソフトウェアシステム／アプリケーション内でさまざまな実装が生じ得ます。明らかに、 `setspace` パッケージは、1行／2行組のテキストや、その他の任意の倍数の行間組版をサポートするために、行間の作業定義を仮定する必要があります。では、異なる量の余白を行の間に持つ行を生成するために、 `setspace` によってどの変数が変更されるのでしょうか？

幸いなことに、 [tex.stackexchange での議論](https://tex.stackexchange.com/a/30106) と [パッケージコード内のコメント](https://tex.stackexchange.com/a/632830) が `setspace` の仕組みを明確にしています: それは `\baselineskip` の値を

**フォントとポイントサイズに関する簡単な注意**

特定のポイントサイズのフォントを使うことは、そうしたフォントの文字形状（グリフ）に *スケーリング係数* を適用することを意味します。ポイントサイズに従って拡大縮小されると、文字の見た目のサイズはそのフォントのデザイン（書体）に依存します。ポイントサイズと、フォント内の文字形状の実際の表示サイズとの間には、普遍的で厳密な関係はありません。

次の画像は、4種類の異なるフォントでスタイル付けされた小文字「abc」を示しており、すべて *同じポイントサイズで表示されています*。同じ *ポイントサイズ* で組版されていても、これらの小文字の「サイズ」がフォントのデザイン（書体）によってどのように変わるかに注目してください:

![同じポイントサイズにおけるさまざまなフォント](/files/0ba9fe9ca004edca1dd793b63b3d7d2c7ab96734)

#### setspace パッケージにおける1行間隔

以下を [tex.stackexchange での議論](https://tex.stackexchange.com/a/30106) として、いくつかさらに説明できます。

を使った基本文書では `article` クラスは、デフォルトの本文フォントサイズが10ptで、 `\baselineskip` が12ptです。\[11pt] または \[12pt] オプションでは article クラスはより大きい本文サイズを使用し、それに応じて `\baselineskip` の値も大きくなります。次の表に示すとおりです:

| オプション          | フォントサイズ                     | $$\texttt{\baselineskip}$$ | $$\displaystyle\frac{\texttt{\baselineskip}}{\text{font size}}$$ |
| -------------- | --------------------------- | -------------------------- | ---------------------------------------------------------------- |
| \[10pt]（デフォルト） | 10pt                        | 12pt                       | 1.2                                                              |
| \[11pt]        | 10.95pt$${}^{\textbf{\*}}$$ | 13.6pt                     | 1.24                                                             |
| \[12pt]        | 12pt                        | 14.5                       | 1.21                                                             |

$${}^{\textbf{\*}}$$の異常な値の理由は `10.95pt`、ちょうど `11pt`ではない理由は、この [reddit の投稿](https://www.reddit.com/r/LaTeX/comments/ihle9h/why_does_latex_use_1095pt_text_when_the_11pt/).

表に示したように、テキストのポイントサイズの各組み合わせと、それに対応するデフォルト（つまり1行間隔）の `\baselineskip`の値について、比

$$\frac{\texttt{\baselineskip}}{\text{font size}}$$

は1.2に近くなります。この比の値が1行間隔を示し、 `setspace` パッケージ。

**\baselinestretch の値を理解し、計算する**

1.5、2、3などの特定の行間倍率を実現するには、 `\baselinestretch` コマンドを一見 [「奇妙な」値](https://tex.stackexchange.com/a/30106)に設定する必要があります。たとえば [を使うことで `\linespread` コマンド](https://texblog.org/2011/09/30/quick-note-on-line-spacing/)。このセクションでは `\baselinestretch` を詳しく見て、そうした「奇妙な」値がどのように生じるのかを見ていきます。

デフォルトのフォントサイズが $$f$$ で、デフォルトの `\baselineskip` の $$\text{dbls}\_1$$、ここで下付き文字 $${}\_1$$ は既定値を意味します `\baselineskip` フォントサイズにおける単一行間隔の値 $$f$$.

次に ***定義します*** 単一行間隔を、次の比率として定義します。これを $$\alpha\_f$$:

$$\frac{\text{dbls}\_1}{f}=\alpha\_f$$

与えられたフォントサイズについて $$f$$、さらに *定義します* 以下の行間隔の値を考えます:

* 行間隔の1.5倍は *定義されます* を次のように定義します

$$\frac{\text{dbls}\_{1.5}}{f}=1.5$$

* 行間隔の2.0倍は *定義されます* を次のように定義します

$$\frac{\text{dbls}\_{2.0}}{f}=2.0$$

* 倍数の、 $$m$$の行間隔は *定義されます* を次のように定義します

$$\frac{\text{dbls}\_{m}}{f}=m$$

比率で定義した単一行間隔を使うと、 $$\alpha\_f$$次の「疑似コード」を書いて、任意の行間隔倍数に対応する `\baselinestretch` 値を求めることができます $$m$$:

$$\begin{align\*} \texttt{multi spacing } (m) &= \text{a constant } (\lambda) \times \texttt{single spacing}\ \frac{\text{dbls}\_{m}}{f}&=\lambda \times \alpha\_f\ m&=\lambda\alpha\_f\ \lambda&=\frac{m}{\alpha\_f}\kern5pt(\text{refer to }\lambda\text{ as }\texttt{\baselinestretch})\ \implies \texttt{\baselinestretch}&=\frac{m}{\alpha\_f} \end{align\*}$$

を使いましょう `11pt` テキスト（実際には `10.95pt`）と既定の `\baselineskip` 値として `13.6pt` を計算して `\baselinestretch` を *2倍の* 行間隔:

$$\begin{align\*} m&=2.0\ \texttt{\baselinestretch}&=\frac{2.0}{\alpha\_f}\ &=\frac{2.0}{\frac{\text{dbls}\_1}{f}}\ &=\frac{2.0}{\frac{13.6}{11}}\ &=2.0 \times \frac{11}{13.6}\ &=1.618\ \end{align\*}$$

次のコード断片は `setspace` パッケージで使用され、 `\doublespacing` フォントサイズが11ptのときにこれを実現します。値に注目してください `1.618`は、上で計算したとおり、コマンド `\baselinestretch`:

```latex
\\newcommand{\\doublespacing}{%
  \\setstretch {1.667}% 既定
  \\ifcase \\@ptsize \\relax % 10pt
    \\setstretch {1.667}%
  \\or % 11pt
    \\setstretch {1.618}%
  \\or % 12pt
    \\setstretch {1.655}%
  \fi
}
```

ある `article` 11ptフォントオプション付きの document class では、次の例は `\doublespacing` と `spacing` 環境を、計算した値を使って `1.618` を `\baselinestretch`を比較します。驚くことではありませんが、 `\baselineskip` の値は同一です（`22.00475pt`):

```latex
\begingroup
\doublespacing
\\verb|\\baselineskip|=\\texttt{\\the\\baselineskip}（\\verb|\\doublespacing|による）

\blindtext[1]

\endgroup

\\begin{spacing}{1.618}
\\verb|\\baselineskip|=\\texttt{\\the\\baselineskip}（\\verb|\\begin{spacing}{1.618}|による）

\blindtext[1]
\end{spacing}
```

&#x20;[この例をOverleafで開く](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demonstrating+baselinestretch+calculations\&snip=%5Cdocumentclass%5B11pt%5D%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D25cm%2Cpaperwidth%3D16cm%2Ctextwidth%3D14cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cusepackage%7Bblindtext%7D+%25+For+dummy+text.%0A%5Cbegin%7Bdocument%7D%0A%5Cbegingroup%0A%5Cdoublespacing%0A%5Cverb%7C%5Cbaselineskip%7C%3D%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D+%28via+%5Cverb%7C%5Cdoublespacing%29%7C%0A%0A%5Cblindtext%5B1%5D%0A%0A%5Cendgroup%0A%0A%5Cbegin%7Bspacing%7D%7B1.618%7D%0A%5Cverb%7C%5Cbaselineskip%7C%3D%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D+%28via+%5Cverb%7C%5Cbegin%7Bspacing%7D%7B1.618%7D%29%7C%0A%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![\\\baselinestretch のデモンストレーション](/files/cb5468d82f659a90ce22909e5591fd63c2b7dff1)

同様の `\baselinestretch` の計算は、他のフォントサイズと行間隔の組み合わせにも適用されます。以下の表に示すとおりです:

![setspace パラメータ](/files/87e4f4eaf5dd412ae9696f423187d7a5878e5775)

## TeX/LaTeX のパラメータコマンドの使用

以下の節では、段落の間隔/整形に関連するいくつかのコマンドを調べます。これらのコマンドの一部は *組み込まれて* います。ほかのものは TeX/LaTeX マクロです。TeX エンジンに組み込まれたコマンドは *プリミティブ*と呼ばれ、つまりそれらは *基本的な* と *還元不能な* ものです。マクロとは異なり、プリミティブは他のコマンドの連なりから構成されていないからです。

特に、いくつかのプリミティブ *パラメータコマンド* を見ていきます。これらは pdfTeX、XeTeX、LuaTeX を含むすべての TeX エンジンでサポートされています。パラメータコマンドは、段落に関係するかどうかにかかわらず、 *現在の値を取得する* か、 *そのパラメータを新しい値に設定する*ために使われます。たとえば、 `\parskip` コマンドはプリミティブで、組版された 2 つの段落の間に挿入される空白の量を制御するパラメータの値を決定します。

これを *取得* （ここでは組版する）には、 `\parskip` 次のように書きます:

```latex
\\the\\parskip
```

これを *set* の現在の値 `\parskip` を `1pt plus2pt` （柔軟なグルー）を使うには、次のように書けます:

```latex
\\setlength{\\parskip}{1pt plus2pt}
```

また、便利な TeX/LaTeX *マクロ*についても説明します。これらは、構成要素となるコマンドの連なりを使って書かれ、構成された上位レベルのコマンドです。

### 段落の間隔に使うコマンド

次のコマンド（プリミティブとマクロ）は、段落の間隔に影響を与えるために使えます。いくつかは、コマンド名のリンクをたどると、より詳しい説明にアクセスできます。

#### プリミティブコマンド

* [`**\\parindent**`](#parindent-tex-primitive): 段落の最初の行に追加される字下げ（空白）の量。
* [`**\\parskip**`](#parskip-tex-primitive): 段落間に置かれる柔軟な空白（「グルー」）の量。
* [`**\\rightskip**`](#leftskip-and-rightskip-tex-primitives): 段落の各行の右側に挿入される柔軟な間隔（グルー）。
* [`**\\leftskip**`](#leftskip-and-rightskip-tex-primitives): 段落の各行の左側に挿入される柔軟な間隔（グルー）。
* [`**\\baselineskip**`](#baselineskip-tex-primitive): このパラメータの値は 2 つの役割を果たします:
  * 段落内のテキストのベースライン間の望ましい距離を設定します。
  * 望ましいベースライン間距離を実現するために、行間に追加される（可変の）空白量（グルー）を計算するために使われます（[記事の後半を参照](#how-the-space-glue-between-paragraph-lines-is-calculated)).
* [`**\\lineskiplimit**`](#lineskip-and-lineskiplimit-tex-primitives): その値が、段落の隣接する 2 行の間で許容される最小距離を定義するパラメータ。
* [`**\\lineskip**`](#lineskip-and-lineskiplimit-tex-primitives): 計算された `\baselineskip` グルーが行同士を近づけすぎる場合に、段落内の 2 行の間に挿入される空白（グルー）の量。
* `**\\parfillskip**`: 段落の最後の行の末尾に追加され、その行を空白で「埋める」ための非常に柔軟なグルー。視覚的な例については、次の節の図を参照してください [*他の種類の段落グルーの可視化*](#visualizing-other-types-of-paragraph-glue).

#### マクロコマンド

次の TeX/LaTeX マクロコマンドは、段落の間隔を変更するためによく使われます:

* [`**\\offinterlineskip**` と `**\\nointerlineskip**`](#offinterlineskipandnointerlineskip): グルーの計算と挿入をオフにするために使えるコマンド。 `\baselineskip` グルー;
* [`**\\baselinestretch**`](#understanding-and-calculating-values-for-baselinestretch): フォントが選択されたときに、\\\baselineskip の値を計算するために使われる数値係数を格納するコマンド。既定値は 1 です; `\baselineskip` が選択されたときに\\\baselineskip の値を計算するために使われる数値係数を格納します。既定値は 1 です;
* [`**\\linespread**`](#demonstrating-linespread): このコマンドは \\\baselinestretch の現在値を変更するために使えます。 `\baselinestretch`.

### 柔軟な間隔（グルー）

TeX エンジンは、段落内や段落間を含む間隔の効果を、 *グルー* と呼ばれる柔軟な空白を使って実現します。必要な空白量に応じて伸び縮みできます。TeX のグルーの概念について学びたい場合は、次の Overleaf 記事で詳細を確認できます:

* [不足/過剰ボックスと badness 計算を探る](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv)
* [TeX が \hbox 内でグルー設定を計算する方法](/latex/ja/xiang-xi-ji-shi/24-how-tex-calculates-glue-settings-in-an-hbox.md)
* [不足・過剰ボックス警告を理解する](/latex/ja/narejjibsu/138-understanding-underfull-and-overfull-box-warnings.md).

## 基本事項: パラメータコマンドと例

この節では、段落に関連するいくつかのパラメータコマンドを説明し、その使用例を示します。

### \\\parindent（TeX プリミティブ）

このパラメータコマンドは、段落の最初の行に追加される字下げ（空白）の量を設定します。LaTeX の `\\setlength` コマンドを使って変更できます。たとえば、段落を `15pt` set `\parindent` を `15pt` だけ字下げするには、次のように書きます:

```latex
\\setlength{\\parindent}{15pt}
```

なお：

* を変更できます `\parindent` をグループ内で変更して、その効果をそのグループ内の段落に限定できます;
* `\parindent` は負の値にすることもでき、字下げではなく「字上げ」になります;
* 既定では、LaTeX は文書の節見出しの後に続く最初の段落を字下げしません（`\\section{...}` など）。

次の例では、 `\parindent`.

```latex
\documentclass{article}
% 適当な小さめのページサイズを選ぶ
\\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% テキストの段落を保持するコマンドを作成
\\newcommand{\\testpar}{\\texttt{\\string\\parindent=\\the\\parindent\\ }When \\TeX{} typesets a paragraph it treats each individual character as a 2D ``box'' with a specific width, height and depth.\\par}
\begin{document}

% 段落間に10ptの空白を入れるよう \\parskip を設定
\\setlength{\\parskip}{10pt}

% \\parindent の値を 0pt に設定
\\setlength{\\parindent}{0pt}
\\testpar

% \\parindent の値を 10pt に設定
\\setlength{\\parindent}{10pt}
\\testpar

% グループ内で \\parindent を設定
{\\setlength{\\parindent}{50pt}\\testpar}

% これで \\parindent は再び 10pt です
\\testpar

% はい、負の \\parindent も使えます
\\setlength{\\parindent}{-20pt}
\\testpar
\end{document}
```

&#x20;[この例をOverleafで開く](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+paragraph+indentation\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Create+a+command+to+hold+a+paragraph+of+text%0A%5Cnewcommand%7B%5Ctestpar%7D%7B%5Ctexttt%7B%5Cstring%5Cparindent%3D%5Cthe%5Cparindent%5C+%7DWhen+%5CTeX%7B%7D+typesets+a+paragraph+it+treats+each+individual+character+as+a+2D+%60%60box%27%27+with+a+specific+width%2C+height+and+depth.%5Cpar%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%25+Set+%5Cparskip+to+put+10pt+between+paragraphs%0A%5Csetlength%7B%5Cparskip%7D%7B10pt%7D%0A%0A%25+Set+the+value+of+%5Cparindent+to+0pt%0A%5Csetlength%7B%5Cparindent%7D%7B0pt%7D%0A%5Ctestpar%0A%0A%25+Set+the+value+of+%5Cparindent+to+10pt%0A%5Csetlength%7B%5Cparindent%7D%7B10pt%7D%0A%5Ctestpar%0A%0A%25+Set+%5Cparindent+in+a+group%0A%7B%5Csetlength%7B%5Cparindent%7D%7B50pt%7D%5Ctestpar%7D%0A%0A%25+Now+%5Cparindent+is+again+10pt%0A%5Ctestpar%0A%0A%25+Yes%2C+you+can+have+a+negative+%5Cparindent%0A%5Csetlength%7B%5Cparindent%7D%7B-20pt%7D%0A%5Ctestpar%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![LaTeX におけるさまざまな段落字下げ値の使用例](/files/3108f9b124f57d523b3ea8b8e126691c71608dfb)

### \\\parskip（TeX プリミティブ）

テキストの可読性は、設計上の美意識に応じて変化する量の空白で段落を分けることで向上させることができます。TeX/LaTeX では、 `\parskip` パラメータコマンドを通じて、その段落間スペースを制御できます。

* **parskip パッケージからの助言 `parskip` パッケージ**： [parskip パッケージ](https://ctan.org/pkg/parskip) は、 `\parskip` を直接変更すると、「予想外の場所に縦方向の空白が生じる」可能性があると助言しています（LaTeX 文書内で）。 `parskip` パッケージは、 `\parskip`の値の変更によって生じる可能性のある間隔の問題を修正しようとします。—たとえば目次や一覧環境内です。この記事の [`parskip` パッケージの節も参照してください](#the-parskip-package).

の現在の値を手動で設定するには、 `\parskip` LaTeX の `\\setlength` コマンドを使います。たとえば、段落間を3pt空けるには次のように書けます:

```latex
\\setlength{\\parskip}{3pt}
```

次の例では、 `\parskip`:

```latex
\documentclass{article}
% 適当な小さめのページサイズを選ぶ
\\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% テキストの段落を保持するコマンドを作成
\\newcommand{\\testpar}{\\noindent \\texttt{\\string\\parskip} の現在の値は \\texttt{\\the\\parskip} です。When \\TeX{} typesets a paragraph it treats each individual character as a 2D~``box'' with a specific width, height and depth.\\par}
\begin{document}
\\testpar
% \\parskip を 5pt に設定
\\setlength{\\parskip}{5pt}\\testpar
% parskip を 10pt に設定
\\setlength{\\parskip}{10pt}\\testpar
% \\parskip を 25pt に設定（ただしグループ内）
{\\setlength{\\parskip}{25pt}\\testpar}
% グループが終了し、今では \\parskip は再び 10pt です
\\testpar
% はい、負の \\parskip も使えます
\\setlength{\\parskip}{-20pt}\\testpar
\end{document}
```

&#x20;[この例をOverleafで開く](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+parskip+settings\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Create+a+command+to+hold+a+paragraph+of+text%0A%5Cnewcommand%7B%5Ctestpar%7D%7B%5Cnoindent+The+current+value+of+%5Ctexttt%7B%5Cstring%5Cparskip%7D+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D.+When+%5CTeX%7B%7D+typesets+a+paragraph+it+treats+each+individual+character+as+a+2D%7E%60%60box%27%27+with+a+specific+width%2C+height+and+depth.%5Cpar%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctestpar%0A%25+Set+%5Cparskip+to+5pt+%0A%5Csetlength%7B%5Cparskip%7D%7B5pt%7D%5Ctestpar%0A%25+Set+parskip+to+10pt%0A%5Csetlength%7B%5Cparskip%7D%7B10pt%7D%5Ctestpar%0A%25+Set+%5Cparskip+to+25pt+%28but+in+a+group%29%0A%7B%5Csetlength%7B%5Cparskip%7D%7B25pt%7D%5Ctestpar%7D%0A%25+Group+ends%2C+now+%5Cparskip+is+again+10pt%0A%5Ctestpar%0A%25+Yes%2C+you+can+have+a+negative+%5Cparskip%0A%5Csetlength%7B%5Cparskip%7D%7B-20pt%7D%5Ctestpar%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![LaTeX における \\\parskip の使用例](/files/c05f01eeab6a9d93750345c5cf57e85676b28c84)

#### 柔軟な \\\parskip

従来、 `\parskip` は *固定* 値ではありませんでした。その場合、すべての段落間の空白量は同じになります。代わりに、 `\parskip` は通常、「柔軟な空白」（グルー）として定義され、TeX が段落間の空白を伸縮させて、ページ上に内容を収めたり、ページ区切りの「良い」位置を見つけたりするのに役立ちます。

を `\parskip` 柔軟にするには、グルー指定の形で書きます:

`\\setlength{\\parskip}{*固定量* **plus** *伸ばす量* **minus** *縮める量*}`

ここで `**plus**` と `**minus**` は *キーワード* であり、TeX/LaTeX がグルー指定に含まれる *伸ばす量* または *縮める量* を識別するために使います。Overleaf の記事 [*不足/過剰ボックスと badness 計算を探る*](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv) には、グルーについてのより詳しい解説があります。

たとえば、 `\parskip` を次の範囲で変化させるには `3 + 1 = 4pt` と `3 — 1 = 2pt` 次のように書けます

```latex
\\setlength{\\parskip}{3pt plus1pt minus1pt}
```

### \\\leftskip と \\\rightskip（TeX プリミティブ）

TeX エンジンは、組版された段落の各行の左側と右側に空白（グルー）を追加する 2 つのパラメータコマンドを提供します。名前が示すとおり、

* `\leftskip` は、段落の各行の左側に空白（グルー）を挿入します;
* `\rightskip` は、段落の各行の右側に空白（グルー）を挿入します。

次の例では `\leftskip` と `\rightskip` を使って段落の配置を直接変更しますが、... テキスト配置の変更は通常、適切な LaTeX 環境またはパッケージを使うのが最善です。たとえば、 [テキスト配置に関する Overleaf 記事](/latex/ja/shu-shi-she-ding/06-text-alignment.md)を参照してください。TeX エンジンが提供する低レベル（プリミティブ）のパラメータコマンドの動作をいくつか示していますが、一般には、可能な限り適切な LaTeX パッケージを使うことが推奨されます。

#### \\\leftskip を固定にし、\\\rightskip を柔軟にする

次の例では 2 つの段落を作成します。1 つ目は、 `\leftskip` と `\rightskip` と 2 つ目の段落は次の設定で組版されます:

```latex
\\leftskip 10pt
\\rightskip 0pt plus 1 fill
```

出力を見るには次の Overleaf プロジェクトを開いてください:

```latex
\documentclass{article}
\\title{2つ目の leftskip と rightskip の例}
% 適当な小さめのページサイズを選ぶ
\\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% いくつかの段落関連パラメータの値を設定
\\setlength{\\lineskip}{3.5pt}
\\setlength{\\lineskiplimit}{2pt}
\\setlength{\\parindent}{20pt}
\\setlength{\\baselineskip}{12pt}

\begin{document}
\\input text.tex % マクロを定義する生成済み TeX ファイル
% 各段落のテキストを含む \\mytextA と \\mytextB
% \\leftskip と \\rightskip の既定値を使って段落を組版

\\mytextB

% \\leftskip と \\rightskip を新しい値に設定
\\leftskip 10pt
\\rightskip 0pt plus 1fill
\\vspace{8pt}

% ここで同じ段落を再度組版
\\mytextB

\end{document}
```

&#x20;この例を Overleaf LaTeX プロジェクトとして開く

この例は次の出力を生成します:

![LaTeX で \\\leftskip グルーを設定する](/files/e515f2f212e6c2c4a65c520456321dbf760c47cc)

次の図は、上の例で生成された 2 つ目の段落に注釈を付けた版です。これは、 `\leftskip` と `\rightskip` 段落の各行に挿入されたグルーの量とともに、 `\parindent` 最初の行のための空白を示すことを目的としています:

![LaTeX で \\\leftskip グルーを設定する](/files/2e778acabef1f12a4c0de9b165e1c4550416aa9f)

注意: `\leftskip` グルーは固定サイズ（10pt）ですが、 `\rightskip` グルーは、各行の右側を埋めるのに必要な量の空白を提供するために伸びました。この「柔軟性」は `\rightskip` の指定によるもので、 `plus 1 fill`を含み、「無限に伸縮可能」な形式のグルーを提供します。

#### \\\rightskip を固定にし、\\\leftskip を柔軟にする

次の例では 2 つの段落を作成します。1 つ目は、 `\leftskip` と `\rightskip` と 2 つ目の段落は次の設定で組版されます:

```latex
\\leftskip 0pt plus 1 fill
\\rightskip 10pt
```

出力を見るには次の Overleaf プロジェクトを開いてください:

```latex
\documentclass{article}
\\title{leftskip と rightskip の例}
% 適当な小さめのページサイズを選ぶ
\\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% いくつかの段落関連パラメータの値を設定
\\setlength{\\lineskip}{3.5pt}
\\setlength{\\lineskiplimit}{2pt}
\\setlength{\\parindent}{20pt}
\\setlength{\\baselineskip}{12pt}

\begin{document}
\\input text.tex % マクロを定義する生成済み TeX ファイル
% 各段落のテキストを含む \\mytextA と \\mytextB
% \\leftskip と \\rightskip の既定値を使って段落を組版

\\mytextB

% \\leftskip と \\rightskip を新しい値に設定
\\rightskip 10pt
\\leftskip 0pt plus 1fill
\\vspace{8pt}

% ここで同じ段落を再度組版
\\mytextB

\end{document}
```

&#x20;この例を Overleaf LaTeX プロジェクトとして開く

この例は次の出力を生成します:

![LaTeX で \\\rightskip グルーを設定する](/files/4768d23fa853753009a7bab82392aecce983d754)

次の図は、上の例で生成された 2 つ目の段落に注釈を付けた版です。これは、 `\leftskip` と `\rightskip` 段落の各行に挿入されたグルーの量とともに、 `\parindent` 最初の行のための空白を示すことを目的としています:

![LaTeX で \\\rightskip グルーを設定する](/files/da1847d526e1b1dfd30e0d7228abd9ee7b56ccf9)

注意: `\rightskip` グルーは固定サイズ（10pt）ですが、 `\leftskip` グルーが伸びて、各行の左側を埋めるのに必要な量の空白を提供する様子を示すことを目的としています。この「柔軟性」は `\leftskip` の指定によるもので、 `plus 1 fill`を含み、「無限に伸縮可能」な形式のグルーを提供します。

#### \\\leftskip と \\\rightskip を柔軟な値に設定する

次の例では 2 つの段落を作成します。1 つ目は、 `\leftskip` と `\rightskip` と 2 つ目は次の柔軟なグルー設定を使います:

```latex
\\leftskip 0pt plus 1fill
\\rightskip 0pt plus 1fill
```

これらの設定により、段落の各行は中央揃えになります:

```latex
\documentclass{article}
\\title{leftskip と rightskip の例}
% 適当な小さめのページサイズを選ぶ
\\usepackage[paperheight==16cm,paperwidth==12cm,textwidth=8cm]{geometry}
% いくつかの段落関連パラメータの値を設定
\\setlength{\\lineskip}{3.5pt}
\\setlength{\\lineskiplimit}{2pt}
\\setlength{\\parindent}{20pt}
\\setlength{\\baselineskip}{12pt}

\begin{document}
\\input text.tex % マクロを定義する生成済み TeX ファイル
% 2 つの段落のテキストを定義する \\mytextA と \\mytextB
% \\leftskip と \\rightskip の既定値を使って段落を組版

\\mytextB

% \\leftskip と \\rightskip を「非常に柔軟な」グルー設定にする
\\leftskip 0pt plus 1fill
\\rightskip 0pt plus 1fill
\\vspace{20pt}

% ここで同じ段落を再度組版
\\mytextB

\end{document}
```

&#x20;この例を Overleaf LaTeX プロジェクトとして開く

この例は次の出力を生成します:

![\\\leftskip と \\\rightskip を示す例](/files/6c1a97dee24d59019d3aa2454737dba739553853)

次の図は、上の例で生成された 2 つ目の段落に注釈を付けた版です。これは、 `\leftskip` と `\rightskip` 段落の各行に挿入されたグルーの量とともに、 `\parindent` 最初の行のための空白を示すことを目的としています:

![\\\leftskip と \\\rightskip を示す例](/files/dee9627defee18bc470cbc2e18abc4d983286610)

両方とも `\leftskip` と `\rightskip` が `0pt plus 1fill` として指定されていることに注意してください。これにより、どちらも等しく「無限に柔軟」になります。その結果、同じ量だけ伸び、組版された行は中央揃えになります。

#### グループ内で \\\leftskip と \\\rightskip を設定する

次の例では、 `\leftskip` と `\rightskip` をグループに入れることで一時的な変更を行う方法を示します。私たちの例では、グループは `\begingroup`... `\endgroup`によって作成されます。次のコード断片に示すとおりです:

```latex
\begingroup
\\leftskip 0pt plus 1fill
\\rightskip 0pt plus 1fill
\\mytextB
\endgroup
```

最初の段落は、 `\leftskip` と `\rightskip`:

```latex
\\leftskip 0pt plus 1fill
\\rightskip 0pt plus 1fill
```

に「非常に柔軟な」グルーを使って組版されますが、2 つ目の段落は LaTeX の既定値を使います:

```latex
\documentclass{article}
\\title{別の leftskip と rightskip の例}
% 適当な小さめのページサイズを選ぶ
\\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% いくつかの段落関連パラメータの値を設定
\\setlength{\\lineskip}{3.5pt}
\\setlength{\\lineskiplimit}{2pt}
\\setlength{\\parindent}{20pt}
\\setlength{\\baselineskip}{12pt}

\begin{document}
\\input text.tex % マクロを定義する生成済み TeX ファイル
% 2 つの段落のテキストを定義する \\mytextA と \\mytextB
% ここでは \\begingroup ... \\endgroup で作成したグループ内で \\leftskip と \\rightskip を「非常に柔軟な」グルー設定に変更します
% グループ内で、\\begingroup ... \\endgroup によって作成された

\begingroup
\\leftskip 0pt plus 1fill
\\rightskip 0pt plus 1fill
\\mytextB
\endgroup

% いま、グループが閉じた後に同じ段落を再度組版
% これにより \\leftskip と \\rightskip は以前の値に戻ります

\\vspace{20pt}
\\mytextB

\end{document}
```

&#x20;この例を Overleaf LaTeX プロジェクトとして開く

この例は次の出力を生成します:

![グループ内で \\\leftskip と \\\rightskip を使う](/files/68e84c6b5825e68fd2544520b11f2b7b57f26a8c)

**注**: （効果の）設定は `\leftskip` と `\rightskip` によって作成されたグループ内の段落に限定されます `\begingroup`... `\endgroup`。グループが閉じられた後、次の段落は LaTeX の `\leftskip` と `\rightskip`.

### \\\baselineskip（TeX プリミティブ）

一般に、段落内のテキストの行は等間隔であるべきだと考えられています。ただし、数学式や画像などの大きな要素を含む特定の行については、そのような行で一定の行間隔を保つことが不可能になる場合があります。

TeX/LaTeX では、ユーザーが行間隔をある程度制御できるようにするコマンドや仕組みが提供されています。そのようなコマンドの 1 つが `\baselineskip` で、組版された段落における望ましい行間隔（ベースライン間距離）を決定するパラメータの値を取得または設定します。

の現在の値を組版するには `\baselineskip` 次のように書けます

```latex
\\the\\baselineskip
```

を `\baselineskip` に設定するには `値` （たとえば `pt`のような LaTeX の長さ）

```latex
\\setlength{\\baselineskip}{value}
```

たとえば、 `\baselineskip` を `12pt` 次のように書けます

```latex
\\setlength{\\baselineskip}{12pt}
```

\\\baselineskip の役割を示すには `\baselineskip` 次の（典型的な）段落を使います:

![LaTeX 段落の例](/files/78f23e69fcd21e0628d2c954f4786f8286e8248f)

に注釈を加えて、 `\baselineskip`:

![ベースライン間距離を示す注釈付きの LaTeX 段落の例](/files/67f5de3e56e8857f97aa1ccfe0a582fcd27c05e9)

この図には行間の「グルー」も示されています。つまり、行の間に追加される計算済みの空白量です—このことについては、この記事の後半でさらに説明します。

#### \\\baselineskip と他のパラメータ

`\baselineskip` は、段落の行の間に挿入される空白量を制御する 4 つの中心的なパラメータの 1 つです。ほかの 3 つは次のとおりです:

* `\lineskip`
* `\lineskiplimit`
* `\prevdepth`

記事の後半では [*これら 4 つのパラメータがどのように使われるかを*](#paragraph-structure-and-line-space-calculations) 行間グルーの値を計算するために。

#### \\\baselineskip の例（固定スペース）

次の例を Overleaf で開くと、という名前のファイルを含むプロジェクトが作成されます `text.tex` というコマンドを定義している `\mytextA` と `\\mytextB`—これら 2 つのコマンドはいずれも段落を組版します。便宜上、Overleaf のプロジェクトでは小さいページサイズを使用しています。これは、このヘルプページ用の図や画像の準備に役立つためです。

```latex
\documentclass{article}
\title{baselineskip のデモ}
% 適当な小さめのページサイズを選ぶ
\\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% 段落に関連するいくつかのパラメータの値を設定します（これらについては後で説明します）
\\setlength{\\lineskip}{3.5pt}
\\setlength{\\lineskiplimit}{2pt}
\\setlength{\\parindent}{20pt}
% \baselineskip の値を設定します---値を変更して効果を確認してください
\\setlength{\\baselineskip}{12pt}

\begin{document}
\\input text.tex % マクロを定義する生成済み TeX ファイル
% \mytextA と \mytextB。それぞれが段落を組版します

% まず、デフォルトの \baselineskip で 2 つの段落を組版します
\mytextA\mytextB

% 次に、\baselineskip をより大きな値に変更して組版します
% 別の段落
\setlength{\baselineskip}{24pt}
\mytextA

\end{document}
```

&#x20;この例を Overleaf LaTeX プロジェクトとして開く

この例は次の出力を生成します:

![TeX または LaTeX における baselineskip の調査](/files/6a606a533fbfaae3344f11d965946967f9f6d012)

2 ページ目の段落では行間が広くなっています。なぜなら `\baselineskip` が 24pt に設定されているからです。

#### \baselineskip の例（柔軟な空白）

次の例では、 `\baselineskip` 極めて柔軟な（いわゆる「無限」の）伸長成分を持つ値:

```latex
\baselineskip=12pt plus1fil
```

この柔軟性のため、段落内の行間の空白は、ページを埋めるのに必要なだけ任意に伸びます。このような柔軟性があると、段落ごとに構成行間の空き量が大きく異なり、見た目がよくなかったり読みづらかったりする可能性があります。

```latex
\documentclass{article}
\usepackage{blindtext}
\title{柔軟な \texttt{\string\baselineskip} のデモ}
\author{Overleaf}
\date{2022年1月}

\begin{document}

\maketitle
\verb|\baselineskip| に値 \texttt{12pt plus1fil} を割り当てることで、非常に柔軟な「stretch」成分を与えます: \verb|\baselineskip=12pt plus1fil|.\baselineskip=12pt plus1fil
\section{はじめに}
ページ全体を埋めるように伸びる段落を追加します。 \blindtext

\end{document}
```

&#x20;[この例をOverleafで開く](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Flexible+baselineskip+demo\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Ctitle%7BFlexible+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+demo%7D%0A%5Cauthor%7BOverleaf%7D%0A%5Cdate%7BJanuary+2022%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cmaketitle%0AWe%E2%80%99ll+provide+%5Cverb%7C%5Cbaselineskip%7C+with+a+very+flexible+%60%60stretch%27%27+component+by+assigning+the+value+%5Ctexttt%7B12pt+plus1fil%7D%3A+%5Cverb%7C%5Cbaselineskip%3D12pt+plus1fil%7C.%5Cbaselineskip%3D12pt+plus1fil+%0A%5Csection%7BIntroduction%7D%0AAdd+a+paragraph+that+will+now+stretch+to+fill+the+page.+%5Cblindtext%0A%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![無限の柔軟性を持つ baselineskip glue のデモ](/files/c3f06234bb80f6e77c2d2da5adb32f116629defd)

**glue に関するいくつかの注意**

以下の注意の一部は、Overleaf の記事 [「underfull または overfull のボックスと badness の計算」の内容を参照しています](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv)、便宜上ここに再掲します。

TeX が段落の行の間に挿入する空白は、 `\baselineskip`、という柔軟な間隔の一種で、 *グルー*. glue の値は 3 つの成分で指定できます:

* ある *固定* 量;
* その量だけ *伸長できる*;
* その量だけ *縮小できる*,

したがって、 `\baselineskip` 値は次のように指定できます:

`\baselineskip`=*固定量* **plus** *伸ばす量* **minus** *縮める量*

ここで

* **plus** と **minus** は TeX エンジンが理解するキーワードです;
* *固定量* は *通常成分* の成分（とも呼ばれる *自然幅* の）;
* *伸ばす量* は *伸長成分* の成分;
* *縮める量* は *縮小成分* の成分。

その *固定量* はすべての glue 値に必要ですが *伸ばす量* と *縮める量* はどちらも任意です。どちらか一方、または両方が欠けている場合は、値 0 に設定されます。

通常は、 `\baselineskip` glue は *固定量* のみで指定され、伸長成分と縮小成分は 0 です。そうでないと、段落の行間が不規則（可変）になり、美しくない可能性があります。

### \offinterlineskip と \nointerlineskip（マクロ）

これらのマクロは、段落の行間に interline glue が挿入されるのを防ぐためによく使われます。さらに詳しい内容に興味のある読者は、これらのマクロの仕組みを説明している該当記事のセクションへ先に進むことができます。

* **`\offinterlineskip`**：記事のセクションを参照 [*ゼロサイズの interline glue: \offinterlineskip*](#zero-sized-interline-glue-offinterlineskip).
* **`\nointerlineskip`**：記事のセクションを参照 [*interline glue を防ぐ：\prevdepth と \nointerlineskip*](#preventing-interline-glue-prevdepth-and-nointerlineskip).

## 段落構造と行間計算

LuaTeX の機能を使うと、 [組版済みの段落を後処理して](https://www.overleaf.com/latex/examples/luatex-parsing-typeset-paragraphs/mzbpwxtjshsj) 構成する文字（グリフ）、行、およびそれを構成する glue の境界を可視化できます。まずは、TeX エンジンが段落内のテキストを組版する際に使う「ボックスと glue」モデルを可視化するための短い図の並びから始めます。

### 段落の構造

TeX が段落を組版するとき、個々の文字を小さなボックスとして扱い、それぞれに独自の幅・高さ・深さがあります。これらの文字ボックスの幅は、改行位置の最適化に使われます。さらに、テキスト中に含まれる単語を区切る空白文字は、各改行を実現するために必要な間隔を与える柔軟な空白（glue）へ変換されます。

次の 7 枚の図は、組版された段落の基本要素であるさまざまな種類のボックスと glue を示しています。最初の図は、組版された段落と、その中のさまざまな要素を強調する注釈付き版を示します。ただし、注釈付きの段落には多くの情報が含まれているため、その後の図では各要素を分離して、（うまくいけば）理解しやすくしています。

![Paragraphanatomy1b.png](/files/05ffbab16f434a017f8c53845d8fbb0dbe3c7bee)

* 次の図は、段落の各行を灰色のボックスとして描き、それらの間の glue を水平の緑色の帯で表しています。この glue は、ベースライン間の距離が等しくなるように、つまり（の値に）なるよう計算されます。 `\baselineskip`:

![Paragraphanatomy2b.png](/files/fba5d85e2e67756bbcfe9a429f62d9fbfa8ecadf)

* 次の画像は、組版された文字をボックスとして表しています。TeX エンジンが改行を生成する目的で文字をどのように処理するかを可視化するためのものです:

![Paragraphanatomy3.png](/files/da90015ac49bb5044a3a680f031a59af7d1c40c3)

* 次の画像は、ボックスの中にボックスがある様子を示しています。より大きな段落行（ボックス）の中に、より小さなボックス（個々の文字）が入っています:

![Paragraphanatomy5.png](/files/61c8ffbd7abd0321913f76e5de91e14dca2a0d2c)

* 次の画像は、各行の単語間の空き量を示しています。これらの単語間スペースは、空白文字を柔軟な glue に変換し、それを伸長または縮小することで、各テキスト行の正しい長さを作り出して生成されます。これらのスペースの大きさは行ごとに異なることに注意してください:

![Paragraphanatomy4.png](/files/ffae79f261e24df68ad96d9e241b0f17ec5e924c)

* 次の画像は、文字ボックスと、個々の単語の間に置かれる対応する glue（空白）を組み合わせたものです:

![Paragraphanatomy6.png](/files/7fd2e76314ced889114f06991028711c5162a54f)

### 他の種類の段落グルーの可視化

以下の段落も LuaTeX を使って組版・処理し、2 つの段落の内部および段落間にある別の種類の glue を示しています。なお、 `\rightskip` と `\leftskip` はどちらも 0pt に設定されているため、表示されていません:

* **`\parskip`** 2 つの組版された段落の間に置かれた glue（薄青）;
* 個々の単語は ***interword glue*** （黄）で区切られています。これは、入力中の空白文字を、組版出力では可変サイズの空白（glue）に変換して生成されたものです。単語間スペースから生じる glue は、見た目のよい改行を実現するために伸長または縮小されます;
* **`\baselineskip`** 行の間に置かれた glue（薄緑）—その正確な量は `\baselineskip` glue は、以下で説明する仕組みを使って計算されます;
* **`\lineskip`** 2 番目の段落で使われている glue（赤）—最後から 2 行目に含まれる低いボックスのため;
* **`\parfillskip`** 各段落の最終行の末尾に置かれた glue（濃緑）。

![](/files/46081adafc299f5dad7d1b4fec4418034dddb271)

### より深い（または高い）行（ボックス）への対処

の図で示されているように、 [前のセクション](#paragraph-structure)、組版された段落は「ボックス」の縦積みであり、それらは TeX が「glue」と呼ぶ空白で区切られています。段落が処理され、個々の行（ボックス）が積み重ねられていくと、縦のリスト（スタック）は *下向きに* 方向、つまりページ下部に向かって増えていきます。TeX/LaTeX は、段落の各行のベースライン間隔が一定の `\baselineskip`の距離になるように積み重ねようとしますが、特定の行では通常より大きい高さまたは深さを持つことがあるため、常にそれを実現できるとは限りません。

各段落行の高さと深さは、その行の内容がベースラインの上下にどれだけ広がるかの最大距離によって決まります。したがって、インライン数式や図のように比較的大きな高さまたは深さを持つ内容を含む段落では、対応して大きな高さや深さを持つ個々の行が生じやすくなります。そのような行では、TeX/LaTeX が、ベースラインが他の行から `\baselineskip` の量だけ離れるように積み重ねることができない場合があります。明らかに、TeX/LaTeX には、そのような行を *計算して* 高い高さや深さの影響を受ける各行の組ごとに挿入する適切な空き量を決めるための「フォールバック機構」が必要です。

#### \lineskip と \lineskiplimit（TeX のプリミティブ）

そのフォールバック機構には、パラメータコマンド `\lineskip` と `\lineskiplimit` と、という名前の第 3 のパラメータが関係します。 `\prevdepth`。さらに詳しい内容に興味のある読者は、記事のセクション [*段落行の間の空き（glue）がどのように計算されるか*](#how-the-space-glue-between-paragraph-lines-is-calculated).

以下の例のプロジェクトでは、移動したテキストボックス（`\hbox`）のために最終行の深さが比較的大きい 1 つの段落を組版します。この段落は次の設定で組版されます:

```latex
\\setlength{\\baselineskip}{12pt}
\\setlength{\\lineskip}{3.5pt}
\\setlength{\\lineskiplimit}{2pt}
\\setlength{\\parindent}{20pt}
```

以下のコードの下にあるリンクを使って Overleaf プロジェクトを開いてください:

```latex
\documentclass{article}
% 扱いやすい小さなページサイズを使用
\\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% いくつかの重要なパラメータを設定します
\\setlength{\\baselineskip}{12pt}
\\setlength{\\lineskip}{3.5pt}
\\setlength{\\lineskiplimit}{2pt}
\\setlength{\\parindent}{20pt}
% \testpar を定義する入力ファイル
\input testpar.tex
\title{lineskip 用のサンプル段落}
\begin{document}
\testpar % Overleaf プロジェクトで作成されたマクロ
\end{document}
```

&#x20;[この例を Overleaf で開く。](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%25+Use+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Set+some+important+parameters%0A%5Csetlength%7B%5Cbaselineskip%7D%7B12pt%7D%0A%5Csetlength%7B%5Clineskip%7D%7B3.5pt%7D%0A%5Csetlength%7B%5Clineskiplimit%7D%7B2pt%7D%0A%5Csetlength%7B%5Cparindent%7D%7B20pt%7D%0A%25+Input+file+defining+%5Ctestpar+%0A%5Cinput+testpar.tex%0A%5Ctitle%7BA+sample+paragraph+for+lineskip%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctestpar+%25+A+macro+created+in+the+Overleaf+project%0A%5Cend%7Bdocument%7D\&snip_name\[]=testpar.tex\&snip\[]=%5Cnewcommand%7B%5Ctestpar%7D%7B%5CTeX%7B%7D+uses+the+name+%60%60glue%27%27+to+describe+%60%60flexible+white+space%27%27+used+to+separate+any+typeset+item+which+can+appear+on+the+page.+For+example%2C+individual+words%2C+and+whole+lines%2C+within+a+typeset+paragraph+are+seperated+by+%60%60glue%27%27.+%5CTeX%7B%7D+engines+identify+%28give+a+name+to%29+different+types+of+glue+according+to+where+it+is+being+used.+For+example%2C+each+line+is+separated+by+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+glue+or%2C+occasionally%2C+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue%2C+depending+on+%5CTeX%27s+calculations.+Let%27s+trigger+use+of+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue+by+adding+an+%5Ctexttt%7B%5Cstring%5Chbox%7D+which+has+a+large+depth+due+to+the+%5Ctexttt%7B%5Cstring%5Clower%7D+command%3B+for+example%2C+the+box%0A+%5Clower5pt%5Chbox%7BLOW+BOX%7D+will+cause+%5CTeX%7B%7D+to+insert+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue+instead+of+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+glue.%5Cpar%7D\&main_document=main.tex)

この例では、次の出力が生成されます:

![\lineskip glue を示す例](/files/42cceeeaca04c72eef4706528d93cab502d6fb19)

次の図は、前の Overleaf プロジェクトで生成された段落の注釈付き版を使用しています。ここでは最終段落行に拡大して注目し、の使用を示しています `\lineskip` 移動したテキストボックスの深さによって生じた glue（赤で表示）:

![TeX の \lineskip glue を示す画像](/files/925e00ca64733b936c31445452032cb69374de1a)

段落テキストの最終行は通常より大きい深さを持つため、TeX は値 `\baselineskip` （12pt）で指定された一定のベースライン間距離を維持できません。図の右側の矢印が示すように、TeX/LaTeX は行の組の間に固定距離（12pt）— `\baselineskip`。ただし、最後の 2 行については TeX が 12pt より大きい量だけ離しており、の値を使っています `\lineskip` を行間 glue に対して使用します。これは、を使って計算した値の代わりです。 `\baselineskip`.

以下のセクションでは、TeX による行間 glue 値の計算の詳細を調べ、説明します。

### 段落行の間の空き（glue）がどのように計算されるか

現時点では、 *ごく簡単に* TeX のページ構築処理について、かなり単純化してですが触れておきます。TeX がハイフネーションを完了し、改行位置を決定して段落の組版を終えると、その段落データは一時的なメモリ位置に保存されていると考えられます。次に TeX は、その段落データを行ごとに、現在の出力ページに配置する सामग्री を格納する新しいメモリ位置へ移動させる必要があります。

TeX が段落データを行ごとに移動するとき、実質的には、行（TeX ボックス）の縦積みを作成しており、それは *下向きに* ページ下部に向かって増えていきます。TeX は、段落の行を現在のページへ移す際、それらの行が等間隔で、値 `\baselineskip`の一定した縦方向（ベースライン間）の間隔になるように努めます。新しい行が現在のページに転送されると、TeX エンジンは一時的にその行の *深さを記録します* これは、その行と次に置かれる行との間の行間 glue（空白）の量を計算するために使われるからです。

#### glue の大きさの計算

まず、TeX エンジンが提供する行間隔の機能をまとめてみましょう:

* ベースライン間の距離を一定に保つ、距離は `\baselineskip`;
* 比較的大きな高さや深さを持つ行に対して間隔を与える;
* 行間 glue の挿入を無効にする機能—自動またはユーザー制御のいずれかで。たとえば:
  * TeX エンジンは、縦モードでルールの後に行間 glue を自動的に無効にします;
  * マクロ `\offinterlineskip` と `\nointerlineskip` は、行間 glue の挿入を一時的に無効にすることをユーザーに許可します—これらのマクロには異なる効果があり、以下で見ていきます。

行間 glue を追加するかどうか、追加するならどの種類をどれだけ追加するかの判断は、次のように行われます:

* 行間 glue を追加すべきでしょうか。TeX は、が *追加された最後の行の深さ* がリストに追加された際に、その特別な値 `–1000pt` （ポイント）より小さいかどうかを調べて判断します。なお、 `–1000pt` は TeX エンジン内部で使われる任意の「番兵」値です。
  * **注**：TeX が内部で記録する「追加された最後の行の深さ」の値は、「previous depth」とも呼ばれます。TeX エンジンはパラメータコマンド `\prevdepth`—これは、ある状況では *取得* または *set* 「previous depth」の値を `\nointerlineskip` を使って `\prevdepth`.
* TeX は、が `直前の行の深さが –1000pt より大きいかどうかを調べます`?
  * ***はい、そうです*** （glue を追加する必要があります）:
    * Δ の値を計算します。ここで Δ = \baselineskip – (直前の行の深さ) – (次の行の高さ)
    * Δ をの値と比較します `\lineskiplimit`、これは、上の行の下端と下の行の上端との距離で測った、2 行間の最小許容距離を定義するために使われるパラメータです。
    * もし Δ < `\lineskiplimit`:
      * 行が近すぎるので、最小許容間隔を挿入します。それは `\lineskip`
    * もし Δ >= `\lineskiplimit`:
      * 行は近すぎないので、挿入する glue の量として Δ を使います
  * ***いいえ、そうではありません*** （glue を追加しません）:
    * 次の行（ボックス）を glue を挿入せずに追加します

次の図は、行間 glue の処理を要約しています:

![TeX が行間 glue の値をどのように決定するか](/files/01a110ce9673f75a4a0269faa7c0a16e4362fd06)

### 行間 glue 計算の例

次の例では、TeX/LaTeX が以下のコマンドパラメータ値を使っていると仮定します:

```latex
\baselineskip=12pt
\lineskip=3.5pt
\lineskiplimit=2pt
```

この段落の最初の 2 行について、行間 glue の計算を見てみましょう:

![OLV2glue-calcs-step0.png](/files/8c0469860c11962f42cefdc8345ac6a9bcee66cb)

次の画像では、TeX エンジンが最初の段落行を処理し、構築中の縦リストへ移動させています。その行の深さ（`d<sub>1</sub>`）は `2.1528` （ポイント）です:

![OLV2glue-calcs-step1.png](/files/572006c9816790b018f3fd1544000635ab701301)

次に、TeX は構築中のリストに 2 行目を追加する準備ができています。その行には高さ（`h<sub>2</sub>`）は `6.9444` （ポイント）があり、ちなみに深さは `d<sub>2</sub>` の `0` （ポイント）です:

![OLV2glue-calcs-step2.png](/files/26ebf8c80cd20dee6592e2fe8a904a84e38e765b)

この時点で、TeX は空き量（glue、 `g<sub>1</sub>`）をこの 2 行の間に挿入する必要があります:

![OLV2glue-calcs-step3.png](/files/e54a9303143ce0674695eaadc723a178b884eea4)

次の画像は、この 2 行の glue 計算を示しています:

![OLV2glue-calcs-stepA3.png](/files/d6e42431149b2f90c0d97fb9b8ac2db49624141d)

最後の画像は、計算された行間 glue をその間に挿入した状態で、2 行が現在のページへ移された様子を示しています:

![OLV2glue-calcs-step5.png](/files/81b65c72ad93564ee049146b6920796645825466)

### さらに別のパラメータ：\prevdepth

前述のように、TeX がボックスの縦積み（リスト）を作成しているとき、そのリストに追加された最後のボックスの深さを保存します。その保存された深さの値は「previous depth」と呼ばれ、パラメータコマンド `\prevdepth`.

その `\prevdepth` コマンドを使って ***のみ*** TeX が縦モード、つまり段落間または縦ボックス内にあるときに使用できます: `\vbox`, `\vtop` または `\vcenter` （注: `\vcenter` ボックスは数式モードでのみ使えます）。

`\prevdepth` 「previous depth」の値の読み書きができます:

* 現在の値を読み取るには `\prevdepth` 次のように書けます:

```latex
\the\prevdepth
```

* 現在の値を設定するには `\prevdepth` を `ある値`、ポイントや mm などの長さを次のように書けます:

```latex
\setlength{\prevdepth}{ある値}
```

\verb を使おうとして`\prevdepth` 本来想定されていない状況、たとえば段落内や `\hbox` の中で使うと、エラーになります

```latex
不適切な \prevdepth。
```

追加情報として、縦モードでのみ使用できると表示されます。

#### interline glue を防ぐ：\prevdepth と \nointerlineskip

の 1 つの用途は `\prevdepth` 〜することです *防ぐ* TeX が、段落の行のような縦リスト内の項目間に行間 glue を追加するために使うベースライン計算を行うのを。を使って `\prevdepth` を表すと `直前の行の深さ` 先ほどの glue 計算（上図）を次のように言い換えられます:

```latex
もし(\prevdepth > –1000pt)
{
     Δ = \baselineskip — \prevdepth — (現在の行の高さ)

     もし(Δ < \lineskiplimit)
       行間 glue = \lineskip
     それ以外
       行間 glue = Δ
}
それ以外
{
     ボックスを追加せずに積み重ねる
     行間 glue を一切
}
```

内部的には、TeX エンジンは、いわゆる「番兵」値 `\prevdepth` を認識しており、これを使って行間 glue の計算と追加を無効化できます。その番兵値は `–1000pt`で、上の疑似コードの 1 行目に見られます:

```latex
もし(\prevdepth > –1000pt)
```

TeX は、が `\prevdepth` より大きい場合にのみ行間 glue を追加します `–1000pt`— これは、 `\nointerlineskip` マクロが縦リスト内の次の 2 つのボックスの間に baseline glue が追加されるのを防ぐために使う仕組みを提供します。

`\nointerlineskip` は次に等しい定義です:

```latex
\def\nointerlineskip{
\prevdepth–1000pt
}
```

注意: `\nointerlineskip` は *1 回限りの無効化* を行うことができます。これは、の値が `\prevdepth` 新しいボックスが現在の縦リストに追加されるたびに継続的に更新されるためです。次の例で示します:

```latex
\noindent 次の \verb|\hbox| は、\TeX{} がいわゆる \textit{outer vertical mode} にあるときに処理されます。処理（組版）後、これらのボックスは現在のページに追加され、その間に interline glue を挿入しながら縦に積み重ねられます:

\hbox{j}
\hbox{p}
\hbox{g}

さて、ボックス \verb|\hbox{j}| の直後に \verb|\prevdepth| を \texttt{-1000pt} に設定すると、ボックス \verb|\hbox{j}| と \verb|\hbox{p}| の間に interline glue が置かれるのを防げます:

\hbox{j}\setlength{\prevdepth}{-1000pt}
\hbox{p}
\hbox{g}

\verb|\hbox{p}| と \verb|\hbox{g}| の間には interline glue \textit{が} 置かれていることに注意してください。これは、\verb|\hbox{p}| が処理されてリストに追加された後に \verb|\prevdepth| の値が更新され、\verb|\prevdepth| の値がボックス \verb|\hbox{p}| の深さになるからです。\verb|\hbox{g}| が縦リストに追加されると、\verb|\prevdepth| の値はもはや \texttt{-1000pt} ではなくなるため、行間 glue を追加できるようになります。
```

&#x20;[この例をOverleafで開く](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=One-shot+use+of+nointerlineskip\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D10cm%5D%7Bgeometry%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cbaselineskip%7D%7B14pt%7D%0A%5Csetlength%7B%5Cparskip%7D%7B1pt%7D%0A%5Csetlength%7B%5Cparindent%7D%7B0pt%7D%0A%25+A+convenience+macro+to+typeset+%5Cprevdepth+in+an+%5Chbox%2C+although+TeX+has+to+be%0A%25+in+a+vertical+mode+when+this+macro+is+used.%0A%5Cnoindent+The+following+%5Cverb%7C%5Chbox%7Ces+are+processed+when+%5CTeX%7B%7D+is+in+so-called+%5Ctextit%7Bouter+vertical+mode%7D.+After+processing+%28typesetting%29%2C+these+boxes+are+appended+to+the+current+page+and+stacked+vertically+with+interline+glue+inserted+between+them%3A%0A%0A%5Chbox%7Bj%7D%0A%5Chbox%7Bp%7D%0A%5Chbox%7Bg%7D%0A%0ANow%2C+immediately+after+after+the+box+%5Cverb%7C%5Chbox%7Bj%7D%7C%2C+we+set+%5Cverb%7C%5Cprevdepth%7C+to+%5Ctexttt%7B-1000pt%7D+which+prevents+interline+glue+being+placed+between+the+boxes+%5Cverb%7C%5Chbox%7Bj%7D%7C+and+%5Cverb%7C%5Chbox%7Bp%7D%7C%3A+%0A%0A%5Chbox%7Bj%7D%5Csetlength%7B%5Cprevdepth%7D%7B-1000pt%7D%0A%5Chbox%7Bp%7D%0A%5Chbox%7Bg%7D%0A%0AObserve+that+interline+glue+%5Ctextit%7Bis%7D+placed+between+the+boxes+%5Cverb%7C%5Chbox%7Bp%7D%7C+and+%5Cverb%7C%5Chbox%7Bg%7D%7C+because+the+value+of+%5Cverb%7C%5Cprevdepth%7C+is+updated+after+%5Cverb%7C%5Chbox%7Bp%7D%7C+is+processed+and+added+to+the+list%3A+the+value+of+%5Cverb%7C%5Cprevdepth%7C+becomes+the+depth+of+the+box+%5Cverb%7C%5Chbox%7Bp%7D%7C.+When+%5Cverb%7C%5Chbox%7Bg%7D%7C+is+added+to+the+vertical+list+the+value+of+%5Cverb%7C%5Cprevdepth%7C+is+no+longer+%5Ctexttt%7B-1000pt%7D%3B+consequently%2C+interline+glue+can+now+be+added.%0A%5Cend%7Bdocument%7D)

この例では、次の出力が生成されます:

![TeX のパラメータ \prevdepth を示す例](/files/077e28a8b787178fef16290f0aeeaf01d3db52cc)

#### ゼロサイズの interline glue: \offinterlineskip

マクロコマンドを使って、すべての行間隔を取り除くことができます `\nointerlineskip`、その定義は次に等しいです:

```latex
\def\offinterlineskip{%
\baselineskip=-1000pt
\lineskip=0pt
\lineskiplimit=\maxdimen
}
```

注意: `\maxdimen` は `16383.99998pt`、TeX が使用できる最大の長さです。

次の図は、行間 glue の基本計算と、マクロ `\nointerlineskip`:

![offinterlineskip](/files/524ad559d15543d74030aeb7229da1f375bb14fa)

次の図は、を代入した結果得られる疑似コードの断片を示しています `\nointerlineskip` マクロの値を glue 計算に代入した結果を示しています。これは、 `\nointerlineskip` マクロがの値を設定することでどのように動作するかを示しています `\baselineskip` と `\lineskiplimit` その結果、行間 glue は常に `\lineskip` の glue になるように `0pt`.

![offinterlineskip](/files/e0302773be7225a683e709c49dd534aa0d3e86d5)

#### \offinterlineskip と 0 でない \lineskip

その `\nointerlineskip` マクロは `\lineskip` を 0 に設定しますが、次の Overleaf プロジェクトが示すように、 `\nointerlineskip` と 0 でない値の `\lineskip` を組み合わせて行間効果を実現できます。

```latex
\documentclass{article}
\title{0 でない lineskip のデモ}
% 適当な小さめのページサイズを選ぶ
\\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
\begin{document}

\offinterlineskip % これは \lineskip を 0pt に設定します

\setlength{\lineskip}{5pt} % 0 でない \lineskip にしたいです

\\input text.tex % マクロを定義する生成済み TeX ファイル
% \mytextA と \mytextB。それぞれが段落を組版します

\mytextA % 段落を組版します

% 次に \lineskip を柔軟な glue 値に変更して組版します
% 別の段落

\setlength{\lineskip}{5pt plus5pt minus5pt}

\mytextA

\end{document}
```

&#x20;この例を Overleaf LaTeX プロジェクトとして開く

この例は次の出力を生成します:

![LaTeX の \offinterlineskip マクロのデモ](/files/cfa526806159eb97f90101c174d908984f3a5d1c)

の効果を局所化できます `\offinterlineskip` と `\lineskip` （および他の間隔指定コマンド）の効果は、グループで囲むことで局所化できます:

```latex
\begingroup
\offinterlineskip
\setlength{\lineskip}{5pt}
...ここに段落を入れます

\endgroup
```


---

# 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/shu-shi-she-ding/04-articles-how-to-change-paragraph-spacing-in-latex.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.
